2015-08-07 2 views
0

У меня есть панель инструментов с типичной настройкой, привязанная к меню с тремя точками.меню настроек панели инструментов

В одном из моих фрагментов я изменить панель инструментов, чтобы добавить несколько иконок, но при нажатии этих иконок она запускает свой метод, а затем запускает типичные действия настроек, toolbar icon settings

вот как я называю моим настройки в моей основной деятельности

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    if (!mNavigationDrawerFragment.isDrawerOpen()) { 
     // Only show items in the action bar relevant to this screen 
     // if the drawer is not showing. Otherwise, let the drawer 
     // decide what to show in the action bar. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    return super.onCreateOptionsMenu(menu); 
} 


@Override 
public boolean onOptionsItemSelected(MenuItem mItem) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = mItem.getItemId(); 
    Intent intent = new Intent(MainActivity.this, Settings.class); 
    startActivity(intent); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(mItem); 
} 

и вот как я добавлять элементы и использовать их в своем фрагменте

@Override 
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { 
    // Inflate the menu items for use in the action bar 

    inflater.inflate(R.menu.set_menu, menu); 

    mShare = menu.findItem(R.id.share); 
    mSave = menu.findItem(R.id.save); 

    super.onCreateOptionsMenu(menu, inflater); 

} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.share: 
      share(); 
      break; 

     case R.id.save: 
      saveWallpaper(); 

      return true; 
     default: 
    } 
    return true; 
} 

им еще любопытный новый для андроид и надеюсь, что это довольно тривиальные спасибо за все помогает

ответ

3

Вашего onOptionsItemSelected() безоговорочно называют startActivity(), а не только называя его при выборе опции настройки. Переместите эти строки в операторе if:

@Override 
public boolean onOptionsItemSelected(MenuItem mItem) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = mItem.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     Intent intent = new Intent(MainActivity.this, Settings.class); 
     startActivity(intent); 
     return true; 
    } 

    return super.onOptionsItemSelected(mItem); 
} 

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

  • Нет связанных вопросов^_^