如何在android中的radioButton上获取onClick事件

时间:2017-09-20 13:27:49

标签: android android-radiogroup android-radiobutton

我正试图找到一种在单选按钮上获取onClick事件的方法。我知道有办法获得这样的选定单选按钮值:

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

但我有一个要求,当用户通过触摸屏幕点击/选择单选按钮然后做一些逻辑。因此,当我选择用户之前选择的单选按钮时使用这种方式,然后radioButton.setOnCheckedChangeListener正在呼叫。区分谁正在调用onCheckedChanged事件与代码(显示上一个选择时)或用户自己点击屏幕有点困难。

有人可以告诉我如何在radioButton(not radioGroup)

上找到onClick on touch事件

4 个答案:

答案 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_listener
OnClickListener 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并应用更多逻辑。