2

シンプルなアプリで遊んでいましたが、ボタンがクリックされたときにアラートを表示したいと考えています。

私がこれまでに持っているコードは次のとおりです。

package max.helloworld.firstapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;

public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */

private Button closeButton;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    this.setContentView(R.layout.main);
    this.closeButton = (Button)this.findViewById(R.id.close);
    this.closeButton.setKeyListener(new onClickListener() {
        @Override
        public void onClick(View v) { 
            AlertDialog alertDialog = new AlertDialog.Builder(this).create();               
            alertDialog.setTitle("Transformers");
            alertDialog.setMessage("Optimus Prime");
            alertDialog.setButton("OK", new OnClickListener(){
                public void onClick(DialogInterface dialog, int which){
                }
            });
            //alertDialog.setIcon(R.drawable.icon);
            alertDialog.show();
            finish();
        }
    }); 
}
}

問題は、AlertDialog alertDialog = new AlertDialog.Builder(this).create(); と書かれているところです。

コンストラクタが定義されていないと言っています。どうすれば修正できますか?

4

2 に答える 2

5

この行を変更します。

`AlertDialog alertDialog = new AlertDialog.Builder(this).create();`

に:

`AlertDialog alertDialog = new AlertDialog.Builder(yourActivityName.this);`
于 2012-01-17T16:44:43.900 に答える
2

キーワードは、そのスコープでthisのインスタンスに解決されます。OnClickListenerアクティビティ インスタンスを参照するには、次のように置き換えthisますHelloWorldActivity.this

于 2012-01-17T16:43:31.670 に答える