2014-01-02 3 views
0

В моей деятельности У меня есть три значка в панели действий (поиск - добавление - счет), я хочу, чтобы переменная hideIcon была true, чтобы скрыть эти значки.Скрыть/показать элементы панели действий в состоянии

Следующий мой код.

MainActivity.java

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.activity_main_actions, menu); 

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search) 
      .getActionView(); 
    searchView.setSearchableInfo(searchManager 
      .getSearchableInfo(getComponentName())); 

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Take appropriate action for each action item click 
    switch (item.getItemId()) { 
    case R.id.action_search: 
     // search action 
     return true; 

    case R.id.action_add_tip: 

     return true; 

    case R.id.action_count_tip: 

     return true; 

    case android.R.id.home: 

     return true; 

    default: 

     return super.onOptionsItemSelected(item); 
    } 
} 

menu.activity_main_actions.xml

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

<!-- Search --> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/header_search" 
     android:title="@string/action_search" 
     android:showAsAction="ifRoom" 
     android:actionViewClass="android.widget.SearchView"/> 


<!-- Add Tip --> 
<item android:id="@+id/action_add_tip" 
     android:icon="@drawable/header_add" 
     android:title="@string/action_add_tip" 
     android:showAsAction="ifRoom" /> 

<!-- Count Tips --> 
<item android:id="@+id/action_count_tip" 
     android:icon="@drawable/header_count" 
     android:title="@string/action_count_tip" 
     android:showAsAction="ifRoom" /> 

</menu> 

Как я могу скрыть их if(hideIcon) это true? Спасибо заранее.

ответ

3
//anywhere in your code 

hideIcon = HIDE_MENU; // setting state 

invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again 




@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // inflate menu from xml 
    MenuInflater inflater = getSupportMenuInflater(); 
    inflater.inflate(R.menu.settings, menu); 

    if (hideIcon) 
    { 
     for (int i = 0; i < menu.size(); i++) 
      menu.getItem(i).setVisible(false); 
    } 
} 
+0

Спасибо, что ваш ответ велик. – Eman87

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