2016-05-03 19 views
1

Ich versuche, eine Toolbar mit dem android.support.v7.widget.toolbar zu erstellen, aber wenn ich ein Element t hinzufügen versuchen, wird es auf der Symbolleiste nicht zeigen:Android Toolbar Elemente werden nicht angezeigt?

Toolbar in activity_main.xml:

<android.support.v7.widget.Toolbar 
    android:id="@+id/my_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

main_activity: auf dem onCreate:

Toolbar my_tbar = (Toolbar) findViewById(R.id.my_toolbar); 
setSupportActionBar(my_tbar); 

aus onCreate:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.refresh: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

res/menu/main_menu.xml

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

    <item 
    android:title="RefreshButton" 
    android:id="@+id/refresh" 
    android:icon="@drawable/refresh_icon" 
    app:showAsAction="always" 
    /> 

</menu> 

die refresh_icon von mir erstellt wird, weil in der @drawable/ ich nicht gefunden habe die ic_menu_refresh

Warum ist die Schaltfläche nicht angezeigt?

Danke

+0

haben Sie diese Reihe von Code öffentlichen boolean onCreateOptionsMenu (Menü-Menü) { MenuInflater inflater = getMenuInflater(); inflater.inflate (R.menu_main, Menü); return super.onCreateOptionsMenu (Menü); } –

Antwort

1

Es ist nicht, weil Ihr das Menü-Layout nicht angezeigt wird infalting. Vor onOptionsItemSelected() Aufruf müssen Sie das Layout wie diese

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    return true; 
} 

nur hinzufügen, um dieses Verfahren in Ihrer Tätigkeit aufzublasen, und es wird gut funktionieren.