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,593
  • 16
  • 73
  • 124
Isaac Waller
  • 32,709
  • 29
  • 96
  • 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
  • 81,193
  • 14
  • 123
  • 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
  • 312,688
  • 75
  • 539
  • 559
Brian Pellin
  • 2,859
  • 3
  • 23
  • 14