在我的应用程序中,我有三个调用函数的菜单选项 . 三个中的一个调用一个函数,该函数应该从文件中读取一些信息,然后在对话框中显示它 . 我的问题是让对话框工作 . 我使用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();
}
3 回答
你必须
import android.view.View.OnClickListener;
摆脱第一个错误 .在
onClick()
方法之前删除@Override
.View.OnClickListener
将onClick()
声明为abstract void
,因此没有要覆盖的实现 .如果只有一个Activity正在运行,则
onClick()
方法中的finish()
调用将关闭您的活动/应用程序 . 您可能想要使用dialog.dismiss()
或dialog.cancel()
.标记/注释按钮'btn'并尝试添加否定按钮 .
希望能帮助你 .
看看这个链接 . 我想它拥有你需要的所有解决方案
http://developer.android.com/guide/topics/ui/dialogs.html