-1

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;
   }
});

私の構造は大丈夫だと思いますが、コンパイルさえできません。

4

3 に答える 3

4

変更してみる

AlertDialog alert = builder.create();

AlertDialog alert = builder.show();
于 2011-01-18T15:45:01.147 に答える
2

ブラケットが適切な場所にあるようにコードを更新しました。今すぐコンパイルする必要があります。そして、JLund が指摘するように、最後の行をbuilder.create();toに変更すると、うまくbuilder.show();いくはずです。builder.create();通話を続けたい場合は、その後ろに追加alert.show();してください。

于 2011-01-18T16:10:03.963 に答える
0

ダイアログアラートの表示はほぼ完了しましたが、 AlertDialogの使用を表示するのを忘れたようshow()ですAlertDialog

この行をコードの最後に追加しますが、return false;内部の前に追加しますonTouch()

alert.show();

于 2014-06-19T09:00:01.197 に答える