Mar*_*__C 2 checkbox android android-optionsmenu
我有一个带复选框的选项菜单.当用户点击它时,我可以选中并取消选中该复选框.但是,我使用SharedPreferences来存储此复选框的值,因此我还需要做的是使用存储在SharedPreferences pref值中的任何内容初始化复选框,即如果pref为true/false,则将复选框设置为选中/选中.
我想我需要在onCreateOptionsMenu中放入一些代码,我显然需要使用.setChecked(首选项)来设置复选框,但是我如何以编程方式引用复选框本身?
使用以下命令创建菜单:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
可以使用以下方法选中/取消选中该复选框:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.two_week:
if (item.isChecked()) {
item.setChecked(false);
}
else {
item.setChecked(true);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为你唯一缺少的方法是Menu的findItem().您可以prefs像这样轻松加载任何SharedPreferences(在此处调用):
SharedPreferences prefs;
...
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
boolean checked = prefs.getBoolean("two weeks", false);
menu.findItem(R.id.two_week).setChecked(checked);
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4631 次 |
| 最近记录: |