Я пытаюсь сделать простое действие, в котором есть меню с двумя кнопками. Первая кнопка загрузит отдельное действие, в то время как вторую кнопку я оставляю, пока нечего делать. Я поместил операторы журнала повсюду, но выполняется только тот, который находится в onCreateOptionsMenu.

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Set up window View
    setContentView(R.layout.main);

    Log.i( "onCreate", "veryBeginning" );
}

public boolean onCreateOptionsMenu( Menu menu ) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate( R.menu.option_menu, menu );
    Log.i( "onCreateOptionsMenu", "hereasd" );
    return true;
}

public boolean onOptionsSelected( MenuItem item ) {
    Log.i( "onOptionsSelected", "start" );
    switch( item.getItemId() ) {
    case R.id.connect:
        Log.i( "onOptionsSelected" , "r.id.connect" );
        startActivity( new Intent(getApplicationContext(), DeviceList.class ) );
        finish();
        return true;
    case R.id.preferences:
        Log.i( "onOptionsSelected" , "r.id.preferences" );
        return true;
    default:
        Log.i( "onOptionsSelected" , "r.id.?" );
        return super.onContextItemSelected( item );
    }
}

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

Это мой LogCat

06-13 14:11:34.643: I/onCreate(15262): veryBeginning
06-13 14:11:49.098: W/KeyCharacterMap(15080): No keyboard for id 0
06-13 14:11:49.098: W/KeyCharacterMap(15080): Using default keymap:/system/usr/keychars/qwerty.kcm.bin
06-13 14:11:49.098: I/onCreateOptionsMenu(15080): hereasd
1
JuiCe 13 Июн 2012 в 22:17

1 ответ

Лучший ответ

Используйте onOptionsItemSelected(MenuItem item). см. здесь.

2
Eight 13 Июн 2012 в 22:22