2009-02-20 17 views
6

Nella mia applicazione Android, voglio che un'impostazione sia modificabile nel suo menu come l'app Dialer per altoparlanti e mute. Potete vedere una foto qui sotto:Menu Android Pulsante di attivazione dell'elemento

http://www.isaacwaller.com/images/acall.png

si vede come il presidente, Mute e Hold opzioni sono bottoni a commutazione - si può toccare di nuovo e saranno alternare il colore verde. Possono farlo in un modo personalizzato, ma sospetto che sia un'opzione (ho provato a impostare l'attributo Checkable).

risposta

6

Sembra che questa voce di menu sia implementata come visualizzazione personalizzata.

Nel codice sorgente di Android è possibile dare un'occhiata a com.android.phone.InCallMenuView.java per vedere come questo è implementato.

Non sembra che faccia parte dell'API pubblica, ma sembra piuttosto autosufficiente. Se il tuo progetto ha una licenza compatibile, potresti essere in grado di copiarlo nel tuo progetto e usarlo e modificarlo come meglio credi.

10

Si potrebbe fare qualcosa di simile al frammento di sotto così, originariamente provenienti da anddev.org

public boolean onPrepareOptionsMenu(final Menu menu) {  
     if(super.mMapView.isTraffic()) 
      menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_off_48); 
     else 
      menu.findItem(MENU_TRAFFIC_ID).setIcon(R.drawable.traffic_on_48); 

     return super.onPrepareOptionsMenu(menu); 
}