2016-09-02 11 views
0

CheckBoxダイアログがあります。ダイアログボックスで項目を選択するたびに、ダイアログを閉じてから、以前に選択したアイテムがすべて消えてしまいます。SharedPreferencesを使用してチェックボックスを選択する

これは私のコードは、データを保存し、ロードするために、これらの二つの機能を使用することができます

set_repeat_days = (LinearLayout)findViewById(R.id.repeat_days); 
    set_repeat_days.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final ArrayList<Integer> mSelectedItems = new ArrayList(); 
      AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity.this); 

      String[] days = new String[]{"Monday", "Thursday", "Wednesday", "Tuesday", "Friday", "Saturday", "Sunday"}; 

      final boolean[] checkedDays = new boolean[]{true, true, true, true, true, true, true}; 

      builder.setMultiChoiceItems(days, checkedDays, new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int which, boolean isChecked) { 

        if (isChecked){ 
         mSelectedItems.add(which); 
        }else if (mSelectedItems.contains(which)){ 
         mSelectedItems.remove(Integer.valueOf(which)); 
        } 
       } 
      }); 
      // Specify the dialog is not cancelable 
      builder.setCancelable(false); 
      builder.setTitle("Repeat"); 

      // Set the positive/yes button click listener 
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 

       } 
      }); 

      // Set the neutral/cancel button click listener 
      builder.setNeutralButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 

       } 
      }); 
      AlertDialog dialog = builder.create(); 
      dialog.show(); 
     } 
    }); 
+0

SharedPreferencesの部分はどこですか? –

+0

ここで達成したいことについてもう少し説明してもらえますか?質問タイトルに「SharedPreferences」と書かれていますが、コードのどこにでもSharedPreferencesを使用することはありません。 – RamithDR

+0

こんにちは、私はチェックボックスの状態を保存し、再度ダイアログを開いたときに状態を取得したい SharePreferencesは最高の解決策になると思っています しかし、私はこの場合、それを使用する方法がわかりません 申し訳ありません英語は悪いです、ありがとう。 RamithDR –

答えて

1

です。

private void save(final boolean[] isChecked) { 
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
for(Integer i = 0; i < isChecked.length; i++) 
{ 
editor.putBoolean(i.toString(), isChecked[i]); 
} 
editor.commit(); 
} 

private boolean[] load() { 
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
boolean [] reChecked = new boolean[itemChecked.length]; 
for(Integer i = 0; i < itemChecked.length; i++) 
{ 
    reChecked[i] = sharedPreferences.getBoolean(i.toString(), false); 
} 
return reChecked; 
} 
関連する問題