如何检查 android 复选框是不是在其 onClick 方法中被选中(在 XML 中声明)?
Posted
技术标签:
【中文标题】如何检查 android 复选框是不是在其 onClick 方法中被选中(在 XML 中声明)?【英文标题】:How to check if android checkbox is checked within its onClick method (declared in XML)?如何检查 android 复选框是否在其 onClick 方法中被选中(在 XML 中声明)? 【发布时间】:2013-08-22 13:39:38 【问题描述】:我在 android 中有一个复选框,其中包含以下 XML:
<CheckBox
android:id="@+id/item_check"
android:layout_
android:layout_
android:onClick="itemClicked" />
这是我的 Activity 类中的 onClick() 方法。
public void itemClicked(View v)
//code to check if this checkbox is checked!
我知道我们可以创建一个复选框对象并为其分配 id。但是通过 XML 声明 onClick
方法时有没有更好的方法来实现该功能?
【问题讨论】:
((CheckBox)v).isChecked(); 【参考方案1】:试试这个:
public void itemClicked(View v)
//code to check if this checkbox is checked!
CheckBox checkBox = (CheckBox)v;
if(checkBox.isChecked())
【讨论】:
【参考方案2】:这样就可以了:
public void itemClicked(View v)
if (((CheckBox) v).isChecked())
Toast.makeText(MyAndroidAppActivity.this,
"Checked", Toast.LENGTH_LONG).show();
【讨论】:
【参考方案3】:<CheckBox
android:id="@+id/checkBox1"
android:layout_
android:layout_
android:text="Fees Paid Rs100:"
android:textColor="#276ca4"
android:checked="false"
android:onClick="checkbox_clicked" />
这里的主要活动
public class RegistA extends Activity
CheckBox fee_checkbox;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_regist);
fee_checkbox = (CheckBox)findViewById(R.id.checkBox1);// Fee Payment Check box
复选框被点击
public void checkbox_clicked(View v)
if(fee_checkbox.isChecked())
// true,do the task
else
【讨论】:
【参考方案4】:你可以试试这个代码:
public void itemClicked(View v)
//code to check if this checkbox is checked!
if(((CheckBox)v).isChecked())
// code inside if
【讨论】:
【参考方案5】:@BindView(R.id.checkbox_id) // if you are using Butterknife
CheckBox yourCheckBox;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity);
yourCheckBox = (CheckBox)findViewById(R.id.checkbox_id);// If your are not using Butterknife (the traditional way)
yourCheckBox.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
yourObject.setYourProperty(yourCheckBox.isChecked()); //yourCheckBox.isChecked() is the method to know if the checkBox is checked
Log.d(TAG, "onClick: yourCheckBox = " + yourObject.getYourProperty() );
);
显然,您必须使用复选框的 id 来制作 XML:
<CheckBox
android:id="@+id/checkbox_id"
android:layout_
android:layout_
android:text="Your label"
/>
所以,判断复选框是否被选中的方法是:(CheckBox) yourCheckBox.isChecked()
如果复选框被选中,则返回true
。
【讨论】:
以上是关于如何检查 android 复选框是不是在其 onClick 方法中被选中(在 XML 中声明)?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Ajax、PHP 和 JQuery 检查多个输入复选框?