2016-12-25 30 views
0

私はAndroidとAndroid Studio開発の初心者です。私は本当にチェックボックスの状態を取得する必要があります。だから、基本的には、アクティビティのチェックボックスがチェックされていればチェックして、メインアクティビティのテキストを表示したいと思っています。私はたくさんのSO Q &を読んだが、何も働かなかった。だから私は他のクラスにAndroidの別のアクティビティからチェックボックス変数を取得する

CheckBox setty = Settings.getCheck(); 

を使用したい

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

public CheckBox getShow() { 
    return show; 
} 

:私はこれを得ました。しかし、エラーが発生します:

Cannot resolve method 'getCheck()'

どうすればいいですか?私はそれがオンであるかオフであるかを知り、それを主な活動に表示する必要があります。私はインテントを使用することができないことを覚えておいてください。なぜなら、私はトランジションするボタンを持たないから、テキストと値は常にメインクラスになければなりません。事前

+0

すべてのアクティビティはインテントによって開始されます。インテントの余分なフィールドにデータを入れて、あるアクティビティから別のアクティビティにデータを渡すことができます。 1つのアクティビティーから戻ってきた場合は、結果を渡すために、最初のアクティビティーの結果のアクティビティーを開始することができます。だから、Uのコードで示されているようにチェックボックスのゲッターが必要ない –

+0

投稿を読んでください、主な活動は、開始すると真または偽の値を含むことがあります。 @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()メソッドを2番目のアクティビティ(最初のアクティビティのチェックボックス状態を確認したい)

関連する問題