0

ボタンを押したときに表示されるカスタム ダイアログが必要です。これが私のコードです:

Button button3 = (Button) findViewById(R.id.Button03); 
    button3.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

        final Dialog custdialog = new Dialog(this);


        custdialog.setContentView(R.layout.custom_drink);

        custdialog.setTitle("Custom Drink");

        custdialog.setCancelable(false);

 /etc.

ただし、この行では: final Dialog custdialog = new Dialog(this);

「コンストラクタ Dialog(new View.OnClickListener(){}) は未定義です」というエラーが表示されます。

「これ」を他のものに置き換えてみましたが、うまくいきませんでした。この行でエラーが発生するのは奇妙です。これは、プロジェクトのスイッチの下にまったく同じもの (異なる名前やものを除く) があるためです (次のように:

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
    case R.id.settings: 

 final Dialog settingsdialog = new Dialog(this);

    settingsdialog.setContentView(R.layout.custom_dialog);

    settingsdialog.setTitle("Settings");

    settingsdialog.setCancelable(false);

そして、それはうまくいきます...うーん。

4

1 に答える 1

3

まず、実際の質問では、 の代わりにthisを使用MyActivity.thisします。 はクラスMyActivityの名前です。Activityこれを内部クラスから使用しようとしていますが、実際に必要なオブジェクトは外部クラスです。

また、getApplicationContext()特に UI に関連するものには使用しないでください。

于 2010-06-18T22:42:59.733 に答える