диалоговое окно предупреждения Android не отображается - PullRequest
0 голосов
/ 18 января 2011

Я пытаюсь показать предупреждение внутри onTouchListener, но не могу его показать. Я довольно новичок в этом, но я следовал некоторым хорошим урокам безрезультатно. Это часть кода ... есть идеи, почему это предупреждение не будет отображаться?

mSwitcher.setOnTouchListener(new OnTouchListener()
{
   public void onItemClick(AdapterView<?> parent, View v, int position, long id)
   {
   }

   @Override public boolean onTouch(View v, MotionEvent event)
   {
      // the attempt at the alert
      AlertDialog.Builder builder = new AlertDialog.Builder(this);
      builder.setMessage("Are you sure you want to exit?")
             .setCancelable(false)
             .setPositiveButton("Yes", new DialogInterface.OnClickListener()
                {
                   public void onClick(DialogInterface dialog, int id)
                   {
                      MyActivity.this.finish();
                   }
                })
             .setNegativeButton("No", new DialogInterface.OnClickListener()
                {
                   public void onClick(DialogInterface dialog, int id)
                   {
                      dialog.cancel();
                   }
                });
      AlertDialog alert = builder.create();
      return false;
   }
});

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

Ответы [ 3 ]

4 голосов
/ 18 января 2011

Попробуйте изменить

AlertDialog alert = builder.create();

до

AlertDialog alert = builder.show();
2 голосов
/ 18 января 2011

Я обновил код, чтобы скобки были в нужном месте.Это должно скомпилировать сейчас.И, как указывает JLund, измените последнюю строку с builder.create(); на builder.show();, и это должно сработать.Если вы хотите сохранить вызов builder.create();, просто добавьте alert.show(); после него.

0 голосов
/ 19 июня 2014

Вы почти закончили отображать диалоговое оповещение, но, похоже, вы забыли показать AlertDialog , используйте show() из AlertDialog.

, добавьте эту строку в конецваш код, но до return false; внутри onTouch().

alert.show();

...