onCreateOptionsMenu ничего не делает для меня - PullRequest
2 голосов
/ 07 июня 2011

Я полностью застрял, почему это происходит.Меню параметров работало просто отлично, но теперь оно больше не работает.

Когда я нажимаю кнопку меню, открывается меню, я нажимаю на него и ничего.Он регистрирует MenuItem, когда я делаю свой LogCat ... Я серьезно собираюсь дернуть себя за волосы, я не понимаю, почему это происходит.

06-06 22: 19: 07.899: DEBUG / MYTAG (23124): глупый идентификатор кликера = сохранить элемент настроек id = 2133000192 id2 = 2133065728

Ниже приведен код и xml

@Override
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.settings, menu);
        Log.d("MYTAG", "Clicked saved1");
        return super.onCreateOptionsMenu(menu);
    }



@Override
    public boolean onOptionsItemSelected(MenuItem item){
        Log.d("MYTAG", "Stupid clicker id="+item+" item id="+item.getItemId()+" id2="+R.mainmenuSettings.save1);
        switch(item.getItemId()){
        case R.mainmenuSettings.save1:
            Log.d("MYTAG", "Stupid clicker");
            break;
        }
        return super.onOptionsItemSelected(item);
    }


<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item   android:id="@+mainmenuSettings/save1"
            android:title="save settings"/>
</menu>

1 Ответ

5 голосов
/ 07 июня 2011

В вашем меню XML ошибка. Атрибут "id" должен начинаться с "@ + id /", поэтому это должно быть "@ + id / mainmenuSettingsSave1" или что-то подобное. Кроме того, вам нужно ссылаться на это в вашем коде как R.id.mainmenuSettingsSave1:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/mainmenuSettingsSave1"
          android:title="save settings"/>
</menu>

и

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.settings, menu);
    Log.d("MYTAG", "Clicked saved1");
    return super.onCreateOptionsMenu(menu);
}



@Override
public boolean onOptionsItemSelected(MenuItem item){
    Log.d("MYTAG", "Stupid clicker id="+item+" item id="+item.getItemId()+" id2="+R.id.mainmenuSettingsSave1);
    switch(item.getItemId()){
    case R.id.mainmenuSettingsSave1:
        Log.d("MYTAG", "Stupid clicker");
        break;
    }
    return super.onOptionsItemSelected(item);
}
...