Java 如何在Android中检查复选框是否选中?
我正在使用以下代码在Java 如何在Android中检查复选框是否选中?,java,android,android-layout,android-menu,Java,Android,Android Layout,Android Menu,我正在使用以下代码在Android操作栏中添加复选框: <item android:id="@+id/action_checkbox" app:actionViewClass="android.widget.CheckBox" android:title="@string/action_check" app:showAsAction="always" /> 如何获取上述复选框的值,无论它是否在android中作为菜单项选中?您可以使用i
Android操作栏中添加复选框:
<item
android:id="@+id/action_checkbox"
app:actionViewClass="android.widget.CheckBox"
android:title="@string/action_check"
app:showAsAction="always"
/>
如何获取上述复选框的值,无论它是否在android中作为菜单项选中?您可以使用isChecked()
获取复选框的选中状态:
CheckBox checkBox = (CheckBox) findViewById(R.id.action_checkbox);
if(checkBox.isChecked())
// do something
else
// do something else
您可以使用isChecked()
获取复选框的选中状态
:
CheckBox checkBox = (CheckBox) findViewById(R.id.action_checkbox);
if(checkBox.isChecked())
// do something
else
// do something else
有关这些简单问题,请参阅
此外,选项ItemSelected是菜单的一部分。请参阅,以了解此类简单问题
选项ItemSelected也是菜单的一部分。您管理java代码的地方复选框
单击事件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem check = menu.findItem(R.id.action_checkbox);
CheckBox c_box =(CheckBox) check.getActionView();
c_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b){
Toast.makeText(getActivity(), "checked",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getActivity(), "unchecked",
Toast.LENGTH_SHORT).show();
}
}
});
return true;
}
你的菜单看起来不错
<item
android:id="@+id/action_checkbox"
app:actionViewClass="android.widget.CheckBox"
android:title="@string/action_check"
app:showAsAction="always"
/>
希望它能起作用。。如果您遇到任何问题,请告诉我。您管理的java代码复选框
单击事件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem check = menu.findItem(R.id.action_checkbox);
CheckBox c_box =(CheckBox) check.getActionView();
c_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(b){
Toast.makeText(getActivity(), "checked",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getActivity(), "unchecked",
Toast.LENGTH_SHORT).show();
}
}
});
return true;
}
你的菜单看起来不错
<item
android:id="@+id/action_checkbox"
app:actionViewClass="android.widget.CheckBox"
android:title="@string/action_check"
app:showAsAction="always"
/>
希望它能起作用。。如果您遇到任何问题,请告诉我。谢谢您的回答,但是OnOptions Item Selected中的何处?如果您询问在何处使用此代码,那么您可以在任何地方使用它,因为findViewById()
将在任何上下文中工作。它是一个操作栏菜单项。因此,它在任何地方都不起作用:)据我所知,findViewById()
可以从任何地方获取视图,因为它可以从应用程序中的所有上下文都可以访问的R
文件获取视图。感谢您的回答,但是在OnOptions ItemSelected中的何处?如果您询问在何处使用此代码,然后您可以在任何地方使用它,因为findViewById()
可以在任何上下文中工作。它是一个操作栏菜单项。因此,它在任何地方都不起作用:)据我所知,findViewById()
可以从任何地方查看,因为它从R
文件中获取视图,该文件几乎可以从应用程序中的所有上下文访问。我遇到了一个异常,即尝试在空对象引用上调用虚拟方法“android.view.view android.widget.LinearLayout.findViewById(int)”
at复选框c=(复选框)rl_viewBag.findViewById(R.id.checkBox);
您使用此方法的地方是片段还是活动?您是否检查了rl_viewBag它是否为null或是否有引用我复制了您上面的全部代码并粘贴它,因为我遇到异常,即尝试调用虚拟方法“android.view.view android.widget.LinearLayout.findViewById(int)”'在空对象引用上
at复选框c=(复选框)rl_viewBag.findViewById(R.id.CheckBox)
您使用这种方法的地方是片段还是活动?您是否检查了rl_viewBag它是否为空或是否有引用我复制了您上面的全部代码并粘贴它,即使它是,然后参考文档。如果您没有做过研究,不要浪费人们的时间。对于不需要教授的问题也是如此。啊!别介意,伙计们:)@SnowTauren实际上你也没有在官方文件上搜索它,因为没有关于“如何使用菜单项中的复选框”和“它有什么问题”的信息?“为什么这些复选框没有显示在应用程序栏上”。是吗?但没关系:)@Def我想你应该先试试谷歌:)但没关系,请参考这个问题:@AmitPal我知道这些评论都很老了。但这个简单的问题对未来的人们是有好处的。任何想要了解这一点的人都会发现这个问题(像我一样),并比浏览文档更快地看到答案,甚至比查阅文档还要快。如果你没有做过研究,就不要浪费别人的时间。问题不教也是如此。啊!没关系,伙计们:)@SnowTauren实际上你也没有在官方文件上搜索它,因为没有关于“如何使用菜单项中的复选框”和“它有什么问题”的信息?“为什么这些复选框没有显示在应用程序栏上”。是吗?但没关系:)@Def我想你应该先试试谷歌:)但没关系,请参考这个问题:@AmitPal我知道这些评论都很老了。但这个简单的问题对未来的人们是有好处的。任何寻找这一点的人都会发现SO问题(像我一样),并且比浏览文档更快地看到答案