在我的应用中,我有三个调用功能的菜单选项。三个中的一个调用一个函数,该函数应该从文件中读取一些信息,然后在对话框中显示它。我的问题是让对话框工作。我正在使用http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application 作为参考,但他们使用的方法对我不起作用。
星号行之间的部分是我收到错误的地方。类型View中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogInterface.OnClickListener(){})“它继续列出建议的替代方法,它们提供相同的错误但列出setOnClickListener作为建议的替代方案。我在覆盖后得到另一个错误:“新的DialogInterface.OnClickListener(){}类型的onClick(View)方法必须覆盖超类方法”
必须有一种简单的方法来完成这项任务吗?我错过了一些应该很明显的东西吗?
//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();
}
答案 0 :(得分:2)
您必须import android.view.View.OnClickListener;
才能摆脱第一个错误。
在@Override
方法之前删除onClick()
。 View.OnClickListener
将onClick()
声明为abstract void
,因此没有要覆盖的实现。
如果只有一个活动正在运行,则finish()
方法中的onClick()
调用将关闭您的活动/应用。您可能希望改为使用dialog.dismiss()
或dialog.cancel()
。
答案 1 :(得分:0)
标记/注释按钮'btn'并尝试添加否定按钮。
dialog.setNegativeButton("Quit", new OnClickListener(){
@Override
public void onClick(View v){
finish();
}
});
希望能帮助你。
答案 2 :(得分:0)
看一下这个链接。我想它有你需要的所有解决方案