私はデータベースから何かを削除する方法があります。私はユーザーの確認を取得したい。それを行うために、私はブール関数を実装して、ダイアログで確認を取得します。ダイアログメッセージボタンはコード内に何もしませんか?
私の問題は、私がはいといいえを選ぶかどうかは関係なく、私はいつも同じ偽の結果を得ることです。
(私はエラーを取得[] beacuseそうでない場合、最終的なブール値を使用)
これはメソッドです:
public boolean alertMessage() { //Confirmation to delete routine
final boolean[] confirmation = {false};
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
// Yes button clicked
confirmation[0] =true;
break;
case DialogInterface.BUTTON_NEGATIVE:
// No button clicked
// do nothing
confirmation[0]=false;
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.sure_delete)
.setPositiveButton(R.string.yes, dialogClickListener)
.setNegativeButton(R.string.no, dialogClickListener).show();
return confirmation[0];
}
そして、これは私が私の削除コードでそれを確認する方法です:
//CONFIRMATION
if(!alertMessage()){
return;
}
更新: これは1つの回答候補でお試しくださいが、それでも同じです:
public boolean alertMessage() { //Confirmation to delete routine
final boolean[] confirmation = {false};
new AlertDialog.Builder(this)
.setTitle(R.string.delete)
.setMessage(R.string.sure_delete)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
confirmation[0]=true;
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
confirmation[0]=false;
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
return confirmation[0];
}
私はエラーを取得するだけで、ブールとbecuase []最後のブールを置く:
"Variable is accessed from within an inner class, needs to be declared final."
そして、私はそれが最終的に宣言一度:
"Can not assign a value to final variable"
だから私はにそれを変換する必要があります配列。 私はブール値のメソッドにしたいと思いますし、他のメソッドで再利用したいので、 "yes"の中にdeleteを実装しません。あなたが望むとおり
愚かな質問が、なぜあなたはboolean型の配列を使用していますか? – compte14031879
これを試してください。次のリンクに従ってメソッドを使用し、ポジティブボタンの実装内で削除することをお勧めします。 http://stackoverflow.com/questions/2115758/how-do-i-display-an-alert-dialog-on-android – vidulaJ
@FrédéricLetellier:私はこれが行われていると思われます。なぜなら、 'final boolean'を使用して、値を変更することはできませんが、配列内の値は変更できます。 –