在OnClick中获取所选单选按钮以获取按钮

时间:2011-11-19 06:26:33

标签: java android radio-button

我正在构建一个简单的应用程序 允许用户输入他的名字并选择“带名字”的单选按钮 和祝酒词,你好名字

和其他收音机为客人显示问候客人,所以如何在OnClick中获取所选收音机我需要从FindViewByID获取它们吗?

这里是我的代码

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(this);

}

public void onClick(View v) {
    if (v.getId() == R.id.button1) {
        //getting the selected radio if its radio 0
        Toast.makeText(this, "Hello Guest", Toast.LENGTH_LONG).show();
    }

    //getting the selected radio if its radio 1
    EditText txt = (EditText) findViewById(R.id.editText1);

    Toast.makeText(this, "Hello " + txt.toString(), Toast.LENGTH_LONG).show();
}

2 个答案:

答案 0 :(得分:0)

请改为尝试:

button.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        //YOUR CODE HERE
    }
});

将它放在onCreate()中,看看它是如何为你工作的。您是否也尝试过查看视图的id是否传入onClick实际上是正确的视图?要查看此内容,请使用log检查ID。

答案 1 :(得分:0)

最好直接检查按钮点击监听器上的单选按钮状态:

 @Override
public void onClick(View v) 

{
if(v == button)
{

if(rb1.isChecked() == true)
Toast.makeText(this, "Hello"+rb1.getText(), Toast.LENGTH_LONG).show();

if(rb2.isChecked() == true)
Toast.makeText(this, "Hello"+rb2.getText(), Toast.LENGTH_LONG).show();
}
}

其中

rb1=(RadioButton)findViewById(R.id.optname);
rb2=(RadioButton)findViewById(R.id.optguest);

FOR MORE