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

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 回答
2

将单选按钮设为静态,以便您可以在任何其他类中访问它。

public static RadioButton RB1;

classB访问单选按钮使用MainActivity.RB1

于 2013-03-15T09:50:12.457 回答
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 回答