2014-01-04 3 views
0

Я только начинаю с Android. Хотите добавить панель действий после tutorial. Я был добавлен res/menu/main_activity_actions.xml:Как добавить панель действий в приложение Android?

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:NecoSeparator="http://schemas.android.com/apk/res-auto" > 
<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:title="@string/action_search" 
     NecoSeparator:showAsAction="ifRoom" /> 

<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:showAsAction="never" /> 

В MainActivity.java я сделать:

public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu items for use in the action bar 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity_actions, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

Но Затмение говорит, что не могу найти: R.menu.main_activity_actions.

Что не так с этим кодом? Я должен сделать что-то еще с этим XML-файлом?

UPDATE

MainActivity.java 

package com.example.necoseparator; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends Activity { 

    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 

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


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu items for use in the action bar 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.main_activity_actions, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle presses on the action bar items 
     switch (item.getItemId()) { 
      case R.id.action_search: 
       openSearch(); 
       return true; 
      case R.id.action_settings: 
       openSettings(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.edit_message); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 

    } 
+0

Вы импортировали 'R' правильно? очистите свой проект и повторите попытку –

+0

Я просто скопирую фрагменты кода из учебника. Но я могу найти другие xml-файлы из папки 'res/menu', используя' R.menu.'. –

+0

можете ли вы отправить «MainActivity», пожалуйста? –

ответ

2

Думаю главная проблема заключается в сохранении макета меню, если есть ошибка в файле его может случиться. измените свой файл меню на свой код и сохраните его и импортируйте R-файл (убедитесь, что это не android.R, и его должно быть YourPackageName.R), затем очистите проект и запустите его.

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
    android:id="@+id/action_settings" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="filtered" 
    /> 

<item 
    android:id="@+id/menu_load" 
    android:icon="@drawable/ic_luncher" 
    android:orderInCategory="200" 
    android:showAsAction="always" 
    android:title="update"/> 

</menu> 
+0

Просто попробовал, но тот же результат. ( –

+0

см. Новое Редактировать @KliverMax –

+0

Я запускаю приложение около 10 раз, и, наконец, 'main_activity_actions' появился в R. –

1

Удалите эту строку xmlns:NecoSeparator="http://schemas.android.com/apk/res-auto и попробуйте еще раз

<!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
      android:title="@string/action_settings" 
      android:showAsAction="never" /> 
</menu> 
+0

Я уже пробовал, но не помогал. –

0

Вы можете использовать панель инструментов

панель инструментов = (панель инструментов) findViewById (R.id.toolbar1); setSupportActionBar (панель инструментов);

и добавить список меню

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