2010-08-06 23 views
1

可以在展示如何創建clicakble檢查選項菜單像下面圖片中的任何教程方向任何一點:Android的 - 選項菜單上辨認的按鈕


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; 
} 

但是我得到相同的結果只是文本和沒有檢查燈,如上圖所示

+0

老問題,但只是一個注意任何人看 - 當使用menu.findItem()使用項目ID而不是索引號。即menu.findItem(R.id.menu_item) – enyciaa 2016-02-23 15:31:59

回答

4

如果你想動態改變你的選項菜單的狀態,你需要使用onPrepareMenu()。在這種方法中,您可以執行動態檢查並更新所需的任何內容。 祝你好運!
documentation

經過一番挖掘,這看起來像一個自定義視圖。我認爲你的照片來了from this code

+0

我已經添加了該方法,我已經編輯了我的問題以向您顯示我的代碼,但結果是相同的,我不能讓它生成打開和關閉的檢查燈(綠色的) – 2010-08-06 14:29:03

+0

實際上,您顯示的圖像看起來像是一個自定義視圖...是您在網上找到的東西嗎?因爲也許這是不可能直接從基本的API,你必須建立自己的菜單。我不記得曾經在android下看到過一個菜單,下面是圖標。 – Sephy 2010-08-06 15:01:30

+0

它的標準來自Android 1.6,Vanilla與其純Android 1.6不同,不是定製ROM – 2010-08-06 15:50:36

1

這是一個古老的問題,但我有同樣的問題,並搜索了很多找到上面顯示的這樣的選項菜單。我在http://www.codeproject.com上找到了一個教程並對其進行了一些修改。也許它不是一個profi程序員代碼,但它適用於我。看到在谷歌網站我的(排列差)的網頁我的修改(我在這個網站的小教程太):

https://sites.google.com/site/opiatefuchs/android-code-examples

這段代碼是從代碼項目網頁上wjfrancis原(很多道具):

http://www.codeproject.com/Articles/173121/Android-Menus-My-Way

我只是修改了它,並會很高興,如果有人有任何想法,以改善這個代碼。但現在,它的工作。