📜 ⬆️ ⬇️

Secrets of buttons in Android. Part 3: Buttons in the main menu

The main menu is one of the main tools for user interaction with the application. In Android 2.3.x and before, it was “hidden” on the hardware Menu button, and the developers drew the menu as best they could. But since Android 3.0, the flaw has been fixed, the menu has become a standard component on the Action Bar, and has received a number of new features. At the same time, the menu development process was almost unchanged. The menu in Android is not just a set of buttons that OnClickListener can be hung OnClickListener . In Android, the menu can do much more than it seems at first glance.

In this article I will tell you how to make a modern menu, how to adapt it for different screen sizes, how to make radio button switches right on the menu, and also how to dynamically control the visibility of the menu buttons, hiding those functions of your application that will not work on that or another smartphone. In the course of the article I will try to give the most detailed description of certain menu features, as well as give links to official documentation on the topic.

Sample Main MenuSample Main Menu

This is how the menu of the same application may look different.
')

Our first button on the menu


Menus in Android are described in resource files or generated by program code. The first option is recommended for a number of reasons: development speed, visibility, ease of maintenance. Menu resources are located in the menu subdirectory of the res application resources directory. Create a menu directory, then create a new Android XML File :

image

Select the type of resource Menu , enter the file name. Since in different activity the menu will most likely be different, I recommend attaching the names of the menu resource files to the activity names.

In the opened editor, enter the code of the first button of our menu:

 <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menuPurchasesListNewRecord" android:orderInCategory="10" android:showAsAction="always|withText" android:title="@string/menuPurchasesListNewRecord" android:icon="@drawable/content_new"> </item> </menu> 


Let's look at the attributes used:

Icons for the menu


If you are developing an application in the style of Holo, you can use the ready-made set of icons from Google, which is available to everyone to download from the official site for free.

The icon set is presented separately for the dark one and separately for the light Holo theme, as well as for different screen sizes. If you can not afford a designer in a team, this set is simply irreplaceable.

Connecting the menu to the Activity


Download a menu from a resource very quickly. Open the Activity code and override the onCreateOptionsMenu method:
  @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); return true; } 

Now the menu is displayed, but when you press the button, nothing happens. You can hang a handler on a button by code or directly in an XML resource by setting the name of the handler method in the android:onClick property. To do the same code, in the Activity, onOptionsItemSelected method:
  @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO:    return true; } return super.onOptionsItemSelected(item); } 


Create a submenu


The submenu is useful when we want to clarify the way in which the action is presented in the action bar. For example, we have a shopping list and a "Sort" button. By pressing the button, you need to find out by which parameter the user wants to sort the list items: by product category, by name, or by the order of addition to the list. Let's look at the submenu code for this case:

  <item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item> 

Here we declared another tag . , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single" . android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single" . android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
   .         ,           . 

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
   .         ,           . 

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
   .         ,           . 

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
   .         ,           . 

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
   .         ,           . 

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -
. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

. , .

Radio button'
. , . , radio button. radio button, android:checkableBehavior="single"
. android:checkableBehavior : single - , all - , check box none - ,

:

<item android:id="@+id/menuPurchasesListSortOrder" android:orderInCategory="20" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListSortOrder" android:icon="@drawable/collections_sort_by_size"> <menu> <group android:checkableBehavior="single"> <item android:id="@+id/menuPurchasesListSortOrderCategory" android:orderInCategory="100" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderCategory"/> <item android:id="@+id/menuPurchasesListSortOrderName" android:orderInCategory="200" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderName"/> <item android:id="@+id/menuPurchasesListSortOrderAddTime" android:orderInCategory="300" android:showAsAction="never" android:title="@string/menuPurchasesListSortOrderAddTime"/> </group> </menu> </item>
, . , - . item.setChecked(true);
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuPurchasesListNewRecord: // TODO: return true; case R.id.menuPurchasesListSortOrderCategory: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderName: item.setChecked(true); return true; case R.id.menuPurchasesListSortOrderAddTime: item.setChecked(true); return true; } return super.onOptionsItemSelected(item); }


, - . , . , , . , . "":
<item android:id="@+id/menuPurchasesListShare" android:orderInCategory="40" android:showAsAction="ifRoom" android:title="@string/menuPurchasesListShare" android:icon="@drawable/social_share" > </item>
onCreateOptionsMenu , :
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.your_activity_menu, menu); // ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); boolean isNetworkAvailable = activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting(); // MenuItem shareMenuItem = menu.findItem(R.id.menuPurchasesListShare); shareMenuItem.setVisible(isNetworkAvailable); return true; }
activity. , ( ..). , activity. - . . invalidateOptionsMenu() activity. onCreateOptionsMenu . , invalidateOptionsMenu API 11, Android 2.x :
ActivityCompat.invalidateOptionsMenu(activity);
android.support.v4.app.ActivityCompat Support Package.


, Android // . , . /res/menu. , , /res/menu-sw600dp, 600 dp ( 7- ). android:showAsAction="ifRoom" , "" , . , .

, .


Android. 2:
Android
XML- Android
action bar Android
Google
Shopping -

Source: https://habr.com/ru/post/222295/


All Articles