7

In my Android application, I want a setting to be toggleable in it's menu like the Dialer app does for speaker and mute. You can see a picture below:

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

You see how the Speaker, Mute and Hold options are toggle buttons - you can tap them again and they will toggle the green color. They may do this in a custom way, but I suspect it is a option (I tried setting the Checkable attribute).

MysticMagicϡ
  • 28,305
  • 16
  • 71
  • 119
Isaac Waller
  • 32,449
  • 28
  • 95
  • 107

2 Answers2

10

You could do something like the snippet below as well, originally sourced from 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); 
 }
Quintin Robinson
  • 78,970
  • 14
  • 121
  • 132
6

It's looks like this menu item is implemented as a custom view.

In the android source code you can take a look at com.android.phone.InCallMenuView.java to see how this is implemented.

It doesn't look like it is part of the public API, but it looks pretty self-contained. If your project has a compatible license, you may be able to copy it into your project and use and modify it as you see fit.

Gordon
  • 305,248
  • 71
  • 524
  • 547
Brian Pellin
  • 2,789
  • 3
  • 22
  • 14