我尝试使用以下代码,但没有出现复选框,只显示文字:
<item
android:id="@+id/menuShowDue"
android:actionViewClass="android.widget.CheckBox"
android:title="@string/string_due"
android:checkable="true"
app:showAsAction="ifRoom" />
是否无法通过菜单添加?我应该做点什么吗?
我正在使用android.support.v7.widget.Toolbar
作为工具栏。
答案 0 :(得分:9)
请如下所示对app:actionViewClass
和app:showAsAction
进行更改,它应该适合您。
<item
android:id="@+id/menuShowDue"
android:checkable="true"
android:title="@string/string_due"
app:actionViewClass="android.widget.CheckBox"
app:showAsAction="ifRoom|withText" />
还对onCreateOptionsMenu()进行相关更改。粘贴在下面的示例文本;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
CheckBox checkBox = (CheckBox) menu.findItem(R.id.menuShowDue).getActionView();
checkBox.setText("Sample Text");
return true;
}
答案 1 :(得分:0)
您可以在OnCreateOptionsMenu上设置标题。使用MenuItem就足够了。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem checkBoxMenuItem = menu.findItem(R.id.menuShowDue);
checkBoxMenuItem.setTitle("Sample Text");
return true;
}
在OptionsItemSelected中,检查是否已选中复选框:
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menuShowDue:
if(item.isChecked())
{
item.setChecked(false);
}else{
item.setChecked(true);
}
break;
}