android 如何在 radioButton 上获取 onClick 事件
How to get onClick event on radioButton in android
我正在尝试寻找一种方法来获取单选按钮上的 onClick 事件。我知道有办法像这样获取选定的单选按钮值:
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
但我有一个要求,当用户 click/select 单选按钮通过触摸屏幕然后执行一些逻辑。因此,在使用这种方式时,当我选择用户先前选择的单选按钮时,radioButton.setOnCheckedChangeListener
正在调用。很难从代码(显示先前的选择时)或用户自己点击屏幕来区分谁在调用 onCheckedChanged
事件。
谁能告诉我如何在 radioButton(not radioGroup)
上找到 onClick 触摸事件
或者,您可以直接在 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>
然后您的 activity 必须实施 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
试试这个让单选按钮的点击侦听器
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
}
}
};
您可以获得触发检查更改事件的每个视图的 ID,因此在
中获取 ID
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(buttonView.getId()==firstButton)
比较 id 并应用进一步的逻辑。
只需像这样在 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);
我正在尝试寻找一种方法来获取单选按钮上的 onClick 事件。我知道有办法像这样获取选定的单选按钮值:
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
但我有一个要求,当用户 click/select 单选按钮通过触摸屏幕然后执行一些逻辑。因此,在使用这种方式时,当我选择用户先前选择的单选按钮时,radioButton.setOnCheckedChangeListener
正在调用。很难从代码(显示先前的选择时)或用户自己点击屏幕来区分谁在调用 onCheckedChanged
事件。
谁能告诉我如何在 radioButton(not radioGroup)
或者,您可以直接在 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>
然后您的 activity 必须实施 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
试试这个让单选按钮的点击侦听器
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
}
}
};
您可以获得触发检查更改事件的每个视图的 ID,因此在
中获取 ID public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(buttonView.getId()==firstButton)
比较 id 并应用进一步的逻辑。
只需像这样在 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);