単純な「終了しますか?」というクラスを作っているだけです。アプリケーション内の各アクティビティのダイアログが表示されます。いくつか質問があります。OOPの初心者のImなので、怒ってはいけません。
これが私の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)関数をコメントアウトしました。誰がこれを行うことができるかについての提案はありますか?
2番目の質問は.dismiss()についてです。this.dismiss()を呼び出すと、ダイアログが消えず、画面に表示されたままになります。なぜ発生するのですか?それではどうやって却下するのですか?
3番目の質問は、この外部ダイアログクラスから親アクティビティを取得する方法です。アプリを終了できるように、.finish()を呼び出す必要があります。
任意の提案をいただければ幸いです。ありがとう。