代码之家  ›  专栏  ›  技术社区  ›  user565

如何在android中获取单选按钮上的onClick事件

  •  1
  • user565  · 技术社区  · 7 年前

    我正在试图找到一种方法来获得单选按钮上的onClick事件。我知道有一种方法可以获得如下所示的选定单选按钮值:

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

    但我有一个要求,当用户点击/点击屏幕上的单选按钮,然后做一些逻辑。因此,当我用这种方式选择一个单选按钮时,用户先前选择了该按钮 radioButton.setOnCheckedChangeListener onCheckedChanged 来自代码的事件(当显示以前的选择时)或用户自己单击屏幕。

    radioButton(not radioGroup)

    4 回复  |  直到 7 年前
        1
  •  1
  •   mrid    7 年前

    只需在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);
    
        2
  •  0
  •   AskNilesh    7 年前

    试试这个,让click listener进入你的单选按钮

    RadioButton radioButton = (RadioButton) findViewById(R.id.yourRadioButton);
    radioButton.setOnClickListener(radio_listener);// set listner to your radio button
    

    然后使用以下代码创建一个新的radio_侦听器

    OnClickListener radio_listener = new OnClickListener (){
     public void onClick(View v) {
       //perform your action here
        if(v==radioButton){
           //perform your action here
        }
     }
    };
    
        3
  •  0
  •   Nikhil Jadhav    7 年前

     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(buttonView.getId()==firstButton)
    

        4
  •  0
  •   Tobias Uhmann    7 年前

    或者,您可以直接在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