0

いくつかのチェックボックスを動的に作成していて、一度に1つだけを選択するロジックを実行しました。選択したチェックボックスの状態を保存したいので、次の画面から戻ったら選択する必要があります。以下にチェックボックスのコードを示しました

cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {


            if (isChecked) {                    
                if (hash.size() > 0) {
                    hash.get("1").setChecked(false);
                }                                       

                hash.put("1", buttonView);
                selAnyone = true;
            } else {
                hash.clear();
                selAnyone = false;

            }
4

1 に答える 1

2

編集:

現在のアクティビティから次のアクティビティに移動するときはいつでも、選択したチェックボックスのIDを次のように保存してください

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString("checkboxid","1");
      editor.commit();

または単にインテント経由で送信します

yourintent.putExtra("checkboxid","1"); // selected checkbox id

その後

sharedpreferencesの代わりにインテントを使用している場合は、現在の画面に戻るときに同じ余分なものを追加します。

最初にSharedPreferencesを使用する:

アクティビティのonCreateで、設定にチェックボックスIDが含まれているかどうかを確認します

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name",null);  // if the  preference doesn't exist it returns null

if(name!=null)
{
 int checkedid=Integer.parseInt(name);
checkbox[checkid].setChecked(true);
}

インテントエクストラについても同じロジックが続き、checkboxidもチェックします。存在しない場合は何もチェックせず、存在する場合は関連付けられたIDのチェックボックスをチェックします。


SharedPreferencesを使用する

例:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("checkboxid","1");
  editor.commit();

このようになります

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name","checkboxid");
于 2013-03-24T12:30:43.000 に答える