2016-12-25 69 views
0

我是Android和Android Studio開發人員的初學者,我非常需要幫助獲取複選框的狀態。所以基本上我想得到一個活動的複選框是否被選中,如果是,則在主要活動上顯示一些文本。我讀過很多很多的SO Q &但沒有成功。我得到這個:從Android中的其他活動獲取複選框變量

CheckBox show = (CheckBox) findViewById(R.id.checkBox); 

public CheckBox getShow() { 
    return show; 
} 

所以我想在其他類使用

CheckBox setty = Settings.getCheck(); 

。但是,我得到一個錯誤:

Cannot resolve method 'getCheck()'

我怎樣才能做到這一點?我需要了解它是否打開並顯示在主要活動中。請記住,我不能使用Intents,因爲我不會有按鈕來轉換,文本和值必須始終在主類上。

在此先感謝

+0

所有活動都由意向開始。因此,您可以將數據從一個活動傳遞到另一個活動,方法是將數據放入意圖的額外字段中。如果您從一項活動返回,要傳遞結果,則可以從最初活動的結果開始活動。所以你不需要一個getter的複選框,如你的代碼所示 –

+0

請閱讀帖子,主要活動可能包含true或false值,只要它開始。我不能讓用戶打開另一個活動,就像他們想修改它@AdityaK一樣 – MucaP

回答

0

,可以使用共享偏好來存儲基於該值可以顯示在你的其他活動文字複選框選中/清除value..and。

這裏是代碼:

public static final String MyPREFERENCES = "MyPrefs"; 

初始化的onCreate共享偏好()中的另一個活動,你只需要加載共享偏好數據和節目信息第一活動的方法現在

sharedPreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
    CheckBox check1 = (CheckBox) view.findViewById(R.id.your_checkbox_id); 

    //now initialize listener for checkbox 

    check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (isChecked) { 
        SharedPreferences.Editor editor = sharedPreferences.edit(); 
        editor.putString("checked", "1"); 
        editor.commit(); 
       } else { 
        SharedPreferences.Editor editor = sharedPreferences.edit(); 
        editor.putString("checked", "0"); 
        editor.commit(); 
       } 
      } 
     }); 

基於條件

public void Load_checkbox() { 
     //define MyPREFERENCES in other activity too- same as first activity 
     SharedPreferences shared = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
     if (shared.getString("checked", "").equals("1")) { 
      Toast.makeText(getApplicationContext(), "CheckBox Checked " ,Toast.LENGTH_LONG).show(); 
     }else{ 
      Toast.makeText(getApplicationContext(), "CheckBox unchecked " ,Toast.LENGTH_LONG).show(); 
     } 
    } 

將此Load_checkbox()方法稱爲您希望檢查第一個活動的複選框狀態的第二個活動

相關問題