2016-01-04 4 views
2

Я искал полчаса, и ни одно из решений для других людей не работает для меня.Невозможно добавить элементы панели действий в Android Studio

Вот что показывает в окне предварительного просмотра справа:

enter image description here

Вот является Java-код в моей деятельности (я удалил другие вещи):

public class PlayGame extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.play_game); 

    Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar_playgame); 
    myToolbar.setTitle("ChessClock"); 
    myToolbar.setTitleTextColor(Color.WHITE); 
    setSupportActionBar(myToolbar); 
} 

@Override 
public void onBackPressed() { } //Back Button Disabled 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.actionbaroverflow, menu); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_pause: 
      Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT).show(); 
      break; 
    } 
    return true; 
} 

Все инструкции сказали сделать XML в моем «меню», но у меня его не было, поэтому я сделал это (так называемое «меню» внутри «res»). XML «actionbaroverflow» имеет следующий код:

<?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/action_pause" 

    android:orderInCategory="100" 
    android:title="Pause" 
    app:showAsAction="always"/> 

И деталь просто не отображается при запуске приложения. У меня была икона, но кто-то сказал, что она может быть слишком большой, поэтому я просто написал ее, и она все еще не появляется.

+0

Вы говорите, что у вас не было папки с меню внутри каталога res? –

+0

ну да, я не сделал это, я подумал, что это было странно, поэтому я упомянул об этом –

ответ

0

Tou нужно добавить к вашему R.menu.actionbaroverflow

android:icon="@drawable/your_icon" 

будет что-то вроде этого:

<item 
    android:id="@+id/action_pause" 
    android:icon="@drawable/your_icon" 
    android:orderInCategory="100" 
    android:title="Pause" 
    app:showAsAction="always"/> 
+0

Значит, вам всегда нужен значок, если вы хотите, чтобы он отображался в панели действий? Это работало, кстати, проблема с моим предыдущим значком - я не помещал его в правильную папку с разрешением mipmap (я просто положил ее во все) –

0

Это работает для меня хорошо:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:activity=".ProductsNewOrder"> 
    <item android:id="@+id/action_pause" 
     android:title="Pause" 
     android:visible="true" 
     app:showAsAction="always" 
     android:icon="@drawable/ic_pause"/> 
</menu> 

и в деятельности:

setSupportActionBar(myToolbar); 
if (myToolbar!= null) { 
      myToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
       @Override 
       public boolean onMenuItemClick(MenuItem item) { 
        int id = item.getItemId(); 
        switch (id) { 
         case R.id.action_pause: { 
          //do something 
          break; 
         } 
        } 
        return true; 
       } 
      }); 
     } 

и где я надуть меню:

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

Надеется, что это помогает !!!

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