Jas*_*per 5 android android-ui android-dialog
我正在显示一个带有确定/取消按钮的简单警报对话框.当用户单击"确定"时,会运行一些代码 - 这需要一个参数.
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
MainActivity.this);
alertDialogBuilder
.setTitle("Are you sure?")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//TODO: Do something with parameter.
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
Run Code Online (Sandbox Code Playgroud)
如何将参数传递给AlertDialog?
sam*_*gak 10
如果你将变量声明为final那么你可以在调用AlertDialog.Builder()之前在代码中设置它,然后在onClick()中访问它,如下所示:
final int someParameter = someValue;
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);
alertDialogBuilder
.setTitle("Are you sure?")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Do something with parameter.
doSomeStuff(someParameter);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
Run Code Online (Sandbox Code Playgroud)
这样,someParameter通过函数闭包隐式传递给onClick(),因此不需要子类AlertDialog或向Activity添加额外的成员变量.
| 归档时间: |
|
| 查看次数: |
8295 次 |
| 最近记录: |