在我的应用程序中,我有三个调用函数的菜单选项。这三个函数之一调用了一个函数,该函数应该从文件中读取一些信息,然后将其显示在对话框中。我的问题是让对话框工作。我正在使用 http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application 作为引用,但他们使用的方法对我不起作用。
星号线之间的部分是我遇到错误的地方。 View 类型中的方法 setOnClickListener(View.OnClickListener) 不适用于参数 (new DialogInterface.OnClickListener(){})"它继续列出建议的替代方案,它们给出相同的错误,但将 setOnClickListener 列为建议的替代方案。覆盖后出现另一个错误:“新 DialogInterface.OnClickListener(){} 类型的方法 onClick(View) 必须覆盖父类(super class)方法”
必须有一种简单的方法来完成这项任务吗?我是否遗漏了一些显而易见的东西?
//now stick it in a dialog box
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Totals");
dialog.setCancelable(true);
TextView text1 = (TextView) dialog.findViewById(R.id.diagtext1);
TextView text2 = (TextView) dialog.findViewById(R.id.diagtext2);
TextView text3 = (TextView) dialog.findViewById(R.id.diagtext3);
Button btn = (Button) dialog.findViewById(R.id.button);
text1.setText(dist);
text2.setText(time);
text3.setText(speed);
//******************************************************
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
finish();
}
});
//******************************************************
dialog.show();
}
最佳答案
您必须import android.view.View.OnClickListener;
才能消除第一个错误。
删除onClick()
方法之前的@Override
。 View.OnClickListener
将 onClick()
声明为 abstract void
,因此没有要覆盖的实现。
如果只有一个 Activity 在运行,onClick()
方法中的 finish()
调用将关闭您的 Activity/应用程序。您可能想改用 dialog.dismiss()
或 dialog.cancel()
。
关于android - 如何从函数显示自定义对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5333411/