2016-09-19 5 views
0

Я хочу установить SAVE на панели инструментов с правой стороны, но ее список входит. У меня есть два файла меню, один из которых я использовал для рисования, а второй - для кнопки SAVE.Установить кнопку на панели инструментов

The save button is appearing but its not on the toolbar how can i get this on toolbar

<?xml version="1.0" encoding="utf-8"?> 
 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
 

 

 
    <group android:checkableBehavior="single"> 
 
     <item 
 
      android:id="@+id/home" 
 
      android:title="@string/home"></item> 
 

 
     <item 
 
      android:id="@+id/quote" 
 
      android:title="@string/quote"></item> 
 
     <item 
 
      android:id="@+id/inbox" 
 
      android:title="@string/inbox"></item> 
 
     <item 
 
      android:id="@+id/services" 
 
      android:title="@string/services"></item> 
 
    </group> 
 

 
    <group android:checkableBehavior="single"> 
 
     <item 
 
      android:id="@+id/setting" 
 
      android:title="@string/setting"></item> 
 
    </group> 
 

 
    <group android:checkableBehavior="single"> 
 
     <item 
 
      android:id="@+id/contact" 
 
      android:title="@string/contact"></item> 
 
     <!-- <item 
 
      android:id="@+id/logout" 
 
      android:title="@string/logout"></item>--> 
 
    </group> 
 

 
</menu>

это второе меню для кнопки сохранения

<?xml version="1.0" encoding="utf-8"?> 
 
<menu 
 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
 
    <item 
 
     android:id="@+id/save" 
 
     android:title="SAVE" 
 
     android:icon="@mipmap/ic_launcher" 
 
     android:showAsAction="always"> 
 
    </item> 
 
</menu>

это главное деятельность, где я использовал 1-ый файл меню для просмотра вытяжки навигации

@Override 
 
    public boolean onCreateOptionsMenu(Menu menu) { 
 
     // Inflate the menu1111; this adds items to the action bar if it is present. 
 
     getMenuInflater().inflate(R.menu.drawe_menu, menu); 
 
     return false; 
 
    } 
 

 
    @Override 
 
    public boolean onPrepareOptionsMenu(Menu menu) { 
 
     /* MenuItem item= menu.findItem(R.menu.drawe_menu); 
 
     item.setVisible(true);*/ 
 
     super.onPrepareOptionsMenu(menu); 
 
     return true; 
 
    } 
 

 
    @Override 
 
    public boolean onOptionsItemSelected(MenuItem item) { 
 
     if (actionBarDrawerToggle.onOptionsItemSelected(item)) { 
 
      return true; 
 
     } 
 
     return super.onOptionsItemSelected(item); 
 
    }

я назвал там методу 1-го меню

и это fragmnet, где я хочу кнопку Сохранить на панели инструментов

@Override 
 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflator) { 
 
     inflator.inflate(R.menu.menu, menu); 
 
     super.onCreateOptionsMenu(menu, inflator); 
 
    } 
 

 
    @Override 
 
    public boolean onOptionsItemSelected(MenuItem item) { 
 
     Log.d("", "onOptionsItemSelected"); 
 
     return super.onOptionsItemSelected(item); 
 
    } 
 

 
    @Override 
 
    public void onPrepareOptionsMenu (Menu menu) { 
 
     menu.findItem(R.id.home).setVisible(false); 
 
     menu.findItem(R.id.setting).setVisible(false); 
 
     menu.findItem(R.id.contact).setVisible(false); 
 
     menu.findItem(R.id.quote).setVisible(false); 
 
     menu.findItem(R.id.inbox).setVisible(false); 
 
     menu.findItem(R.id.services).setVisible(false); 
 
     menu.findItem(R.id.save).setVisible(true); 
 
     super.onPrepareOptionsMenu(menu); 
 
    }

ответ

0

Вы можете установить кнопку, создав свою собственную панель инструментов. Проверьте ссылку ниже, чтобы установить кнопку на панели инструментов. Creating a button in Android Toolbar

если вы хотите добавить кнопку на панель инструментов, которая будет видна всегда затем добавить кнопку в панель инструментов с гравитацией правой

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="?attr/actionBarSize"> 
<Button 
android:id="@+id/button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="right" 
/> 
</android.support.v7.widget.Toolbar> 
+0

то, что кнопка будет видна во всех макетах –

+0

+0

, где и как он будет работать, если я добавлю это в свой фрагмент –

0
1.Create the full menu, including the item that only should be displayed 
for a particular page, in the main activity the usual way. Save a reference 
to the menuItem that changes for each page in the Application object. 

2.Implement the onPageChangelistener as above, and set the visibility of 
the menuItem as needed for each page. You get access to the menuItem from the 
Application object. This keeps the menu items as you want them in a 
particular phone orientation, but will fail when the orientation of the  phone changes. Save the current page position in the Application  object. Be sure to initialize the page position in the Application object to the first page (ie 0). 

3.In the onCreateOptionsMenu in the main activity, use the current page 
position (found in the Application object) to determine if the menuItem 
should be visible or not. This will take care of screen rotations. 
+0

Могу ли я реализовать это с использованием транзакции фрагмента, а не смены страницы –

Смежные вопросы