我只是做了一个应该是简单的“你想退出吗?”的课程。我的应用程序中的每个活动的对话框,我有一些问题。我是 OOP 的初学者,所以不要生气。
所以这是我的 ExitDialog 类:
public class ExitDialog extends Dialog implements OnClickListener
{
private Button dialogOk;
private Button dialogCancel;
private TextView dialogText;
public ExitDialog(Context context)
{
super(context);
final Dialog dialog = new Dialog(context, R.style.DialogAnim);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.exitdialog);
dialogOk = (Button)dialog.findViewById(R.id.dialogOk);
dialogCancel = (Button)dialog.findViewById(R.id.dialogCancel);
dialogText = (TextView)dialog.findViewById(R.id.dialogText);
//How to reach any reference from R.java ?
//
//dialogOk.setText(getString(R.string.Yes));
//ialogText.setText(getString(R.string.Exit));
dialogOk.setOnClickListener(this);
dialogCancel.setOnClickListener(this);
dialog.show();
}
@Override
public void onClick(View v)
{
//Many people said on answers, that i must use **getId()** to compare
//these two views, but i can do just like this, bacause i got the message in logcat!
//but the dismiss() just not get called...
if(v == dialogOk)
{
Log.i("ExitDialog", "dialogOk clicked");
this.dismiss();
}
}
}
我有3个问题要问你:
如何访问我的应用程序的R.java 文件以获取字符串引用?如您所见,我注释掉了getString(R.string.Yes)和getString(R.string.Exit)函数,因为我不能在这个外部类中使用它。关于我可以执行此操作的任何建议?
第二个问题是关于.dismiss()的。如果我调用this.dismiss(),我的对话框不会消失,它会停留在屏幕上,为什么会发生?那怎么辞退呢?
第三个问题是:如何从这个外部对话框类中获取父活动?我需要它来调用.finish(),所以我的应用程序可以退出。
任何建议将不胜感激。谢谢。