Контекстное меню Android отображается в onCreate - PullRequest
0 голосов
/ 06 апреля 2011

Я пытаюсь добавить функциональность, которая, если пользователь нажимает кнопку в моем mainActivity, запускает другое действие и ему нужно вызвать меню с двумя возможностями на экране. Когда пользователи выбирают любую возможность, в моем макете будет загружен другой XML из сети.

Я не знаю, возможно ли получить доступ к контекстному меню в методе onCreate или есть другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Почему бы вам не отобразить диалоговое окно с двумя вариантами перед загрузкой новой активности?И затем, согласно выбору пользователя, отобразить соответствующий xml?

Я бы сделал это следующим образом:

  1. У вас работает mainActivity
  2. Когда пользователь нажимает на вашНа этой кнопке отображается AlertDialog с «положительной» кнопкой, представляющей первый xml-файл, и «отрицательной» кнопкой, представляющей ваш второй xml.
  3. При нажатии на любую из кнопок вы отображаете вторую активность, используя разныеIntent-действия и проверка, какое намерение было использовано в методе onCreate вашего второго занятия.

Для вашей кнопки:

Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Intent act2 = null;
                    switch (which) {
                    case DialogInterface.BUTTON_POSITIVE:
                        // layout 1
                        act2 = new Intent("package.example.act2_layout1");
                        startActivity(act2);
                        break;
                    case DialogInterface.BUTTON_NEGATIVE:
                        act2 = new Intent("package.example.act2_layout2");
                        startActivity(act2);
                    }
                }
            };

            AlertDialog.Builder builder = new AlertDialog.Builder(mainActivity.this);
            builder.setTitle("Make your choice")
                .setPositiveButton("Layout 1", listener)
                .setNegativeButton("Layout 2", listener);
        }
    });

А затем в методе onCreate:

Intent starter = getIntent();
    if (starter.getAction().equals("package.example.act2_layout1")) {
        // use layout 1
    } else if (starter.getAction().equals("package.example.act2_layout2")) {
        // use layout 2
    }
0 голосов
/ 06 апреля 2011

Откройте AlertDialog со списком элементов, которые вы хотите показать. Запустите startActivity (намерение), когда выбран ваш элемент.

Пример кода здесь: http://developer.android.com/guide/topics/ui/dialogs.html#AddingAList

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...