создание контекстного меню в Android - PullRequest
1 голос
/ 29 июня 2011

Я пытаюсь создать контекстное меню для Android (которое появляется при нажатии кнопки «меню»). Я прочитал все учебники, которые смог найти, и ничего не помогло. Я новичок в разработке Android.

Я создал файл menu.xml, но я не понимаю, как передать функциональность идентификаторам. Вот как выглядит мой код:

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.new_game:
        newGame();
        return true;
    case R.id.help:
        showHelp();
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

То, что я не понимаю: что делать с 'newGame ();' и 'showHelp ();'. Я хочу, чтобы, когда я нажимал на кнопку меню, начиналось новое действие. Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 29 июня 2011

Во-первых, у вас есть код для меню параметров, а не для контекстного меню, вы можете вызвать новое действие, как показано ниже

  1. Вы можете напрямую вызвать новое действие, не используя меню параметров, по

    Intent myIntent = new Intent(this, NewGame.class);
    startActivity(myIntent);
    
  2. , если вы хотите дать пользователю возможность нажать на кнопку меню, попробуйте следующий код:

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
    
            menu.add(0, 0, 0, "New Game");
            menu.add(0, 1, 1, "Help");
            return super.onCreateOptionsMenu(menu);
        }
    
    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
    
            if(item.getTitle().toString.equalsIgnoreCase("New Game")) {
    
                Intent intent = new Intent(this, NewGame.class);
                startActivity(intent);
                finish();
              }
                else if(item.getTitle().toString.equalsIgnoreCase("Help")) {
                     Toast.makeText(getBaseContext(), "Help", 2000).show();
                     }
            }
    
0 голосов
/ 29 июня 2011

Запускается действие NewGame

Intent myIntent = new Intent(this, NewGame.class);
startActivity(myIntent);
0 голосов
/ 29 июня 2011
Intent intent = new Intent(this, NewGame.class);
startActivity(intent);

Вы читали о , как работает деятельность ?

...