我需要在按下按钮时显示自定义对话框。这是我的代码:
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);
那一个很好......嗯。
答案 0 :(得分:2)
首先,根据您的实际问题,而不是this
,请使用MyActivity.this
,其中MyActivity
是Activity
类的名称。您正尝试从内部类中使用它,但您需要的实际对象是外部类。
此外,永远不要使用getApplicationContext()
来处理任何事情,尤其是与UI相关的任何内容。