2011-11-19 62 views
0

我建立一个简单的应用程序 允许用户输入自己的名字,然后选择单选按钮“名称为” 和敬酒显示,你好名称获取里面的OnClick选择的单选按钮,一个按钮

和另一个电台的客人来显示你好客人,所以我怎么能得到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(); 
} 
+0

定义单选按钮,当你在的onCreate的按钮做的()和获取该单选按钮的状态。 – user370305

+0

这不是您的实际代码,因为您可以在重新格式化它之后清楚地看到它 - 您的花括号不匹配(请参阅代码的最后两行)。这段代码不会编译。此外,你只是检查'id.button1',然后总是检索'editText1'并在'Toast.makeText'调用中使用它。 –

+0

这是我的代码,但我改变了一些东西,我面临的唯一问题是获得OnClick中选定的收音机,edittext将无法工作 – Peril

回答

0

试试这个:

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

将在的onCreate(),看看对你有用的。你是否也尝试过查看View的Id是否传入onClick实际上是正确的视图?要查看此信息,请使用log检查Id。

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