【发布时间】:2011-07-20 14:46:16
【问题描述】:
我有一个由列表视图创建的项目列表。我想长按列表中的一项并打开一个警报对话框,并根据该对话框上的是或否键来设置全局变量。我正在使用的代码位于“MyActivity.java”中,如下所示:
ListView lv = getListView();
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, final long id) {
final AlertDialog.Builder b = new AlertDialog.Builder(MyActivity.this);
b.setIcon(android.R.drawable.ic_dialog_alert);
b.setMessage("Are you sure?");
b.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
yesOrNo = 1;
}
});
b.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
yesOrNo = 0;
}
});
b.show();
if (yesOrNo == 1) {
DO SOMETHING;
}
return true;
}
});
但是,无论我按“是”还是“否”,全局变量“yesOrNo”都不会改变。 有人可以告诉我代码有什么问题吗?
感谢您的帮助。
【问题讨论】:
-
放一个 Log.i("SOMETHING", "ENVOKED");在每个侦听器中查看它是否在单击按钮时被激发?为什么不使用布尔值? :) True for Yes false for No..它更便宜。
标签: android android-alertdialog long-click