0

「MainActivity クラス」があり、その中にラジオ ボタンのオブジェクトがあります。「MainActivity」内に別のクラス「classB」があります。classB からラジオ ボタンのチェック状態「RB1.isChecked()」にアクセスするにはどうすればよいですか?

 public class MainActivity extends Activity 
 { 
    public RadioButton RB1

    protected void onCreate(Bundle savedInstanceState) 
     {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_layout);

    RB1 = (RadioButton)findViewById(R.id.radioButtonA);
     }



   public class classB extends BroadcastReceiver
      {

      }

 }
4

3 に答える 3

2

ラジオボタンを静的にして、他のクラスでアクセスできるようにします。

public static RadioButton RB1;

classBアクセスラジオボタンでMainActivity.RB1

于 2013-03-15T09:50:12.457 に答える
2

rb1 オブジェクトはネストされたクラスでアクセスできるため、次のように使用します。

  rb1.isChecked()



   public class classB extends BroadcastReceiver
  {

        void doSomething(){
              if(rb1.isChecked()){

                         //place your code here
               }

  }

クラス B は非静的内部クラスであるため、それを含むクラスのメンバーに変更なしでアクセスできます。

http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

于 2013-03-15T09:52:35.230 に答える
0

このように共有設定を使用できるクラスBを使用する必要がある場合でも、上記の答えは両方とも正しいです

SharedPreferences prefs1 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

save the state of the radiobutton inside onCheckedChangeListener

onCheckedChange(boolean ischecked)
{


  SharedPreferences.Editor editor = prefs1.edit();
        editor.putBoolean("confirm", isChecked);
        editor.commit();

}


and then you can access this anywhere 

boolean rbcheckedState=prefs1.getBoolean("confirm",true);
于 2013-03-15T11:24:44.797 に答える