【问题标题】:using radiobutton group to open new activity in android studio使用单选按钮组在 android studio 中打开新活动
【发布时间】:2015-04-26 02:23:53
【问题描述】:

我有一组 4 个单选按钮来选择按下按钮时要打开的活动,我已经尝试了下面的 2 个单选按钮的代码,但它没有按预期工作。我对 java 完全陌生,所以任何帮助都会很棒,谢谢!

public class ModeSelect extends ActionBarActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mode_select);

   // Button OpenChannel = (Button)findViewById(R.id.OpenChannelMode0);
    RadioButton SPIM = (RadioButton)findViewById(R.id.SPIMaster);

    SPIM.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

    Button OpenChannel = (Button)findViewById(R.id.OpenChannelMode0);

    OpenChannel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(ModeSelect.this, SPIOptions.class);
            startActivity(i);
        }
    });
        }
    });

    RadioButton I2CM = (RadioButton)findViewById(R.id.I2CMaster);

    I2CM.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            Button OpenChannel = (Button)findViewById(R.id.OpenChannelMode0);

            OpenChannel.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent i = new Intent(ModeSelect.this, I2COptions.class);
                    startActivity(i);
                }
            });

        }
    });
}

【问题讨论】:

  • 究竟是什么不起作用?
  • 首先,不要以这种方式初始化您的按钮 OpenChannel,在使用单选按钮之前执行此操作。然后,在 OpenChannel 按钮单击,检查哪个单选按钮被选中并打开你想要的单选按钮的活动..
  • 如何检查哪个单选按钮被选中?
  • if (radiobutton.checked == "true")
  • 我知道它在 c# 中是这样的

标签: java android android-activity radio-button


【解决方案1】:

这样试试

 Button OpenChannel = (Button)findViewById(R.id.OpenChannelMode0);

    OpenChannel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            if(radiobuttonObj1.isChecked()){
                //open activity 1
            }else if(radiobuttonObj2.isChecked()){
                //open activity 2
            }

        }
    });

【讨论】:

  • 我只希望在按下按钮时更改活动,我尝试将按钮单击侦听器代码放在第一种情况下,但它会引发意外令牌错误
  • 可以分享完整的异常日志吗?
  • Button OpenChannel = (Button)findViewById(R.id.OpenChannelMode0); OpenChannel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(ModeSelect.this, SPIOptions.class); startActivity(i); }
  • 基本上我把它放在第一种情况下,这可能是错误的处理方式
  • 基本上你想要实现的是当一个特定的单选按钮被选中并点击按钮时,应该打开一个活动?
猜你喜欢
  • 1970-01-01
  • 2017-12-03
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多