我正试图找到一种在单选按钮上获取onClick事件的方法。我知道有办法获得这样的选定单选按钮值:
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
但我有一个要求,当用户通过触摸屏幕点击/选择单选按钮然后做一些逻辑。因此,当我选择用户之前选择的单选按钮时使用这种方式,然后radioButton.setOnCheckedChangeListener
正在呼叫。区分谁正在调用onCheckedChanged
事件与代码(显示上一个选择时)或用户自己点击屏幕有点困难。
有人可以告诉我如何在radioButton(not radioGroup)
答案 0 :(得分:1)
只需在XML文件中设置onClick:
android:onClick="Button1"
在此之后,在你的java文件中:
OnClickListener yourRadiolistener = new OnClickListener (){
public void onClick(View v) {
//Do whatever you want to do
}
};
RadioButton Button1 = (RadioButton) findViewById(R.id.yourFirstRadioButton);
Button1.setOnClickListener(yourRadiolistener);
答案 1 :(得分:0)
或者,您可以直接在XML中设置单击处理程序:
<RadioGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickHandler" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClickHandler" />
</RadioGroup>
您的活动必须实现onClick处理程序:
public class MainActivity extends AppCompatActivity {
...
public void onClickHandler(View view) {
public void onClick(View view) {
switch (view.getId()) {
case R.id.radioButton1:
...
break;
case R.id.radioButton2:
...
break;
}
}
}
}
以下是官方文档:https://developer.android.com/guide/topics/ui/controls/radiobutton.html
答案 2 :(得分:0)
尝试此操作以获得单击按钮
RadioButton radioButton = (RadioButton) findViewById(R.id.yourRadioButton);
radioButton.setOnClickListener(radio_listener);// set listner to your radio button
使用下面的代码
创建一个新的radio_listenerOnClickListener radio_listener = new OnClickListener (){
public void onClick(View v) {
//perform your action here
if(v==radioButton){
//perform your action here
}
}
};
答案 3 :(得分:0)
你可以获得每个视图的id,这个视图已经触发了checkchange事件,所以在
中获取id public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(buttonView.getId()==firstButton)
比较id并应用更多逻辑。