2009-02-20 18 views
6

In meiner Android-Anwendung möchte ich, dass eine Einstellung in ihrem Menü umschaltbar ist, wie es die Dialer-App für Lautsprecher und Stummschaltung tut. Sie können ein Bild sehen:Android MenuItem Toggle Button

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

Sie sehen, wie der Sprecher, Mute und halten Optionen sind Umschaltflächen - Sie können sie wieder tippen können, und sie werden die grüne Farbe wechseln. Sie können dies auf eine benutzerdefinierte Weise tun, aber ich vermute, dass es eine Option ist (Ich habe versucht, das Checkable-Attribut zu setzen).

Antwort

6

Es sieht so aus, als wäre dieser Menüeintrag als benutzerdefinierte Ansicht implementiert.

Im Android-Quellcode können Sie sehen com.android.phone.InCallMenuView.java, um zu sehen, wie dies implementiert ist.

Es sieht nicht so aus, als ob es Teil der öffentlichen API ist, aber es sieht ziemlich unabhängig aus. Wenn Ihr Projekt über eine kompatible Lizenz verfügt, können Sie es möglicherweise in Ihr Projekt kopieren und nach eigenem Ermessen verwenden und ändern.

10

Sie könnten unten auch so etwas wie die Schnipsel tun, stammen ursprünglich aus 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); 
}