任何人都可以指出任何教程的方向,这些教程说明如何使用可疑检查来创建选项菜单,如下图所示:



alt text http://img291.imageshack.us/img291/1221/deviceit.png



我尝试如下:

/** Menu creation and setup **/

/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
 boolean result = super.onCreateOptionsMenu(menu);

    menu.add(0, 1, 0, "Speaker").setCheckable(true);
    menu.add(0, 2, 0, "Mute").setCheckable(true);
    return result;
}

/* Handles item selections */
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case 1:
  if(audioManager.isSpeakerphoneOn()==false){
   audioManager.setSpeakerphoneOn(true);
   audioManager.setRouting(AudioManager.MODE_IN_CALL,
      AudioManager.ROUTE_SPEAKER, AudioManager.ROUTE_ALL);
  }else{
   audioManager.setSpeakerphoneOn(false);
   audioManager.setRouting(AudioManager.MODE_IN_CALL,
      AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
  }
        return true;
    case 2:
     if(audioManager.isMicrophoneMute())
   audioManager.setMicrophoneMute(false);
   else
   audioManager.setMicrophoneMute(true);
        return true;
    }
    return false;
}




但这是行不通的,它只能在选项菜单的按钮上给我文字

编辑:我添加了以下onPrepareOptionsMenu方法:

public boolean onPrepareOptionsMenu(Menu menu){
    boolean result = super.onPrepareOptionsMenu(menu);

    if(audioManager.isSpeakerphoneOn())
     menu.findItem(1).setChecked(true);
    else
     menu.findItem(1).setChecked(false);

    if(audioManager.isMicrophoneMute())
     menu.findItem(2).setChecked(true);
    else
     menu.findItem(2).setChecked(false);


    return result;
}




但是我得到的结果只是文本,没有检查灯,如上图所示

最佳答案

如果要动态更改选项菜单的状态,则需要使用onPrepareMenu()。使用这种方法,您可以进行动态检查并更新所需的任何内容。
祝好运!!
documentation

经过一番挖掘,这看起来像一个自定义视图。我想你的照片来了from this code

关于android - Android-选项菜单上的可检查按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3423404/

10-13 04:09