انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره و بازیابی string در savedInstanceState (برنامه نویسی اندروید)

ذخیره و بازیابی string در savedInstanceState (برنامه نویسی اندروید)

#1
چرا وقتی از  " savedInstanceState"  استفاده میکنم
 مشکل زیر پیش میاد ؟
وقتی برنامه برای اولین بار اجرا میشه پیغام درسته ..
وقتی گالری ویدئو را فراخوانی میکنم .. در "savedInstanceState"
مقدار "test" را ذخیره میکنم ولی وقتی بازیابی میشه شرط مساوی "test"
اجرا نمیشه ؟؟ و دستورات توی
"else if (savedInstanceState.getString("key")!="test")"
اجرا میشه در حالی که مقدار
 "savedInstanceState.getString("key")"
برابر "test" ؟؟؟؟


کد برنامه 

کد:
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

   if (savedInstanceState != null) {
   
    if (savedInstanceState.getString("key")=="test"){

    TextView txtarr_1=(TextView) findViewById(R.id.test_array_1);
    txtarr_1.setText("if(savedInstanceState.getString(key)==test){" + savedInstanceState.getString("key")+"}");

    }
    else if (savedInstanceState.getString("key")!="test") {
    TextView txtarr_3=(TextView) findViewById(R.id.test_array_3);
    txtarr_3.setText( savedInstanceState.getString("key"));

    }    
   
   }else{
TextView txtarr_5=(TextView) findViewById(R.id.test_array_5);
txtarr_5.setText("elseif (savedInstanceState != null)");
   }}

کد:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putString("key", "test");
 
    super.onSaveInstanceState(savedInstanceState);
}
پاسخ

ذخیره و بازیابی string در savedInstanceState (برنامه نویسی اندروید)

#2
(۱۳۹۵/۱۲/۱۴, ۰۱:۴۹ ق.ظ)moiid63 نوشته: کد را به شکل زیر تغییر دادم تا به جای اینکه یک string ذخیره کنم بعد بازیابی .... یک عدد ذخیره کنم بعد بازیابی  .. 




کد برنامه 

کد:
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

   if (savedInstanceState != null) {
   
   int val=savedInstanceState.getInt("key");

           if (val==123){

    TextView txtarr_1=(TextView) findViewById(R.id.test_array_1);

txtarr_1.setText("if == 123{" + savedInstanceState.getInt("key")+"}");


    }
    else if (val!=123) {
    TextView txtarr_3=(TextView) findViewById(R.id.test_array_3);
txtarr_3.setText( savedInstanceState.getString("key"));
    }    
   
   }else{
TextView txtarr_5=(TextView) findViewById(R.id.test_array_5);
txtarr_5.setText("elseif (savedInstanceState != null)");
   }}

کد:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt("key", putInt);
 
    super.onSaveInstanceState(savedInstanceState);
}

در این حالت مشکل حل میشه یعنی تشخیص میده که 123 ذخیره کردم ولی اگر 123 به شکل متن ذخیره کنم زمان بازیابی تو برنامه دستورات داخل شرط عدم مساوی  123 اجرا میشه  !!!!!!!

یعنی چی ؟؟؟
یعنی متن زمان ذخیره شدن در هنگام فراخوانی  یک اکتیویتی جدید به یک شکل ذخیره میشه و زمان بازیابی با مفداری که ذخیره شده متفاوته ؟؟ 
ولی وقتی نمایشش میدم دقیقا همون متنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟چرا؟
پاسخ

ذخیره و بازیابی string در savedInstanceState (برنامه نویسی اندروید)

#3
سلام.
شیوه چک کردن مقدار String ، صحیح نمی باشد :

کد پی‌اچ‌پی:
if (savedInstanceState.getString("key")=="test"){ 


در این زمینه، کلید زیر را بخوانید :

کلید شماره 282

به عنوان یک مثال، برای مساوی بودن، کد زیر :

کد پی‌اچ‌پی:
if(myString.equals("string_to_check")){
 
   // some commands



و برای نامساوی بودن، کد زیر را می نویسیم :

کد پی‌اچ‌پی:
if(!myString.equals("string_to_check")){
 
   // some commands



Flower
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moiid63

ذخیره و بازیابی string در savedInstanceState (برنامه نویسی اندروید)

#4
سلام وقت بخیر .
ممنون از راهنمایی ..
حل شد ..
پاسخ
 سپاس شده توسط admin ، شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان