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, use MyActivity.this, whereMyActivityActivity类的名称。您正在尝试从内部类中使用它,但您需要的实际对象是外部类。

此外,永远不要使用getApplicationContext()任何东西,尤其是与 UI 相关的任何东西。

于 2010-06-18T22:42:59.733 回答