所以我试图获取我的菜单项,即在操作栏上显示的行为就像一个可检查的菜单选项.第一部分工作,这意味着它是可检查的,当我按下它,并在代码中设置setChecked(true)它的工作原理.但是什么不起作用的是视觉部分.在已检查和未选中状态下,菜单项在操作栏上的显示方式没有变化?我尝试使用invalidateOptionsMenu(),但这不能完成这项工作,不仅如此,我的代码中的那行我无法退出检查状态?!?发生的事情是,使OptionsMenu()接缝无效以取消设置已检查状态并最终"循环",或者在每次按下该菜单项时,我会继续检查代码中未经检查的部分,并且无效,它将被取消选中我猜...
以下是我的XML文件中的代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/lenslist_menu_add"
android:showAsAction="always"
android:title="@string/add"/>
<item android:id="@+id/lenslist_menu_delete"
android:showAsAction="always"
android:checkable="true"
android:title="@string/delete"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
这是java代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.lenslist_menu_add:
return true;
case R.id.lenslist_menu_delete:
if (item.isChecked() == true) {
item.setChecked(false);
deleteMode = false;
lensAdapter.setDeleteMode(false);
} else {
item.setChecked(true);
deleteMode = true;
lensAdapter.setDeleteMode(true);
}
lensAdapter.notifyDataSetChanged();
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我现在发疯了.谷歌搜索这个,想到了某种IDE错误.也许我是盲目的,看不到东西......但一个小时前就可以了.我注释掉了所有的代码,但仍然无法编译.
public class CityExplorerPoi extends Activity {
private POI displayedPOI = null;
private MediaPlayer mPlayer;
enum audioState {
Idle, //Idle, not initialized
Initialized, //Initialized, not prepared
Prepared, //Prepared
Started, //Playing
Stopped, //needs preparing
Paused, //can be Started or Stopped
Preparing, //...
End, //Released, useless
Error, //...
PlaybackCompleted //can be Started from beginning or Stopped
};
audioState aState; <<<<<<<<<<ERROR
mPlayer = new MediaPlayer();
}
Run Code Online (Sandbox Code Playgroud)
此代码在标有ERROR的行上有一个更加严重的错误,说明令牌";"上的语法错误,预期
随着enum声明我试图没有; 之后}.试图把; 在最后一个条目(PlaybackCompleted)之后仍然没有?
有任何想法吗?我错过了什么:(