我将在新的Dialog中使用什么上下文?

时间:2010-06-18 22:26:56

标签: java android button dialog customdialog

我需要在按下按钮时显示自定义对话框。这是我的代码:

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

那一个很好......嗯。

1 个答案:

答案 0 :(得分:2)

首先,根据您的实际问题,而不是this,请使用MyActivity.this,其中MyActivityActivity类的名称。您正尝试从内部类中使用它,但您需要的实际对象是外部类。

此外,永远不要使用getApplicationContext()来处理任何事情,尤其是与UI相关的任何内容。