آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ثابت ماندن وضعیت چند چک بکس با استفاده از SharedPreferences

reza  9 سال پیش  9 سال پیش
0 0

من  با کمک دوستان یه برنامه درست کردم که یک چک باکس رو با  SharedPreferences وضعیتش رو ثبت می کرد و  سری بعد که برنامه اجرا میشد وضعیت اون چک باکس مونده بود . ممنون از همشون  اما یه مشکل دارم اونم اینه که وقتی چند تا  checkbox  باشه چی ؟! باید چکار کرد من یه سری داخل stack overflow  زدم و فهمیدم که باید آرایه ای از چک باکس بسازم که بتونم به چک باکس هام  id   بدم تا بتونم درست صداشون کنم و کد زیر رو درست کردم آیا این کد واسه ساخت یک ارایه از چک باکس درسته؟! و این که  اون قسمت از برن

 

امه ام که SharedPreferences استفاده میشه با این کد تغییر پیدا می کنه آیا درسته اینم ؟! ممنون سورس هر دوشو پایین می فرستم : 

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
reza  9 سال پیش
0 0

 ArrayList<CheckBox> myList = new ArrayList<Checkbox>() {{
        
    for (int i = 0; i < Checkbox.length; i++) {
        Checkbox checkbox = new Checkbox(checkBoxArr[i]);
        checkboxes.add(checkbox); //for further use you add it to the list
    }};

 

 

 
پاسخ به سوال 
reza  9 سال پیش
0 0

   @Override
      public void onPause() {
        for (int i = 0; i < checkBoxArr.length; i++) {
            save(i, checkBoxArr[i].isChecked());
        }
    }


    @Override
    public void onResume() {
        super.onResume();
        mCheckBox.setChecked(load());
    }



    private void save(int index, boolean isChecked) {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean("check" + index, isChecked);
        editor.commit();
    }


    private boolean load() {
        SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
        return sharedPreferences.getBoolean("check", false);
    }
پاسخ به سوال 
Criss  9 سال پیش
+1 0

یک نمونه از کد زدن اون به شکل ساده که قابل درک باشه بصورت زیر ممکنه : روش های گوناگون رو میتونید استفاده کنید ، که با بالا رفتم تجربه خودتون میتونید اونهارو استفاده کنید ، مثل ذخیره کردن JSON توی Prefences و روی SDCARD و غیره استفاده از یک متد و گرفتن View ها و مدیریت کلیک شدن اونها از درن یک حلقه و . . .

  private SharedPreferences         preferences;
private SharedPreferences.Editor editor;

@Override
protected void onCreate(Bundle savedInstanceState) {
// . . .

preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
editor = preferences.edit();

checkBox_1.setChecked(G.preferences.getBoolean("CHK_1", false));

checkBox_1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (chkInstagram.isChecked()) {
editor.putBoolean("CHK_1", true);
editor.commit();
} else {
editor.putBoolean("CHK_1", false);
editor.commit();
}
}
});
}

 با درک موضوع ، خودتون میتونید از حلقه و آرایه ها استفاده کنید و یا هرکاری دیگه

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .