我正在使用和ArrayAdapter来填充ListView。选择和项目后,它会显示一个确认Y/N对话框。如果用户的选择是否定的,那么他应该能够选择显示相同对话的另一项目。等等。Android:onItemClick只返回第一个选择的项目
这里是我的代码:
lView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(final AdapterView<?> parent, final View v, final int index, final long id) {
Toast.makeText("Selected file"+ mFiles.get(index).getfileName(),
Toast.LENGTH_SHORT).show();
SelectedFile = mFiles.get(index);
showDialog(DIALOG_CONFIRMIMPORT_ID);
}
});
奇怪的是,虽然“吐司”显示单击项目每一次,只有第一个选择项,因为启动该活动被传递给“SelectedFile”。无论您点击不同的项目多少次,“SelectedFile”总是采用相同的值,即此代码之外的第一个点击项目的值。
继承人是我的对话框代码:
Protected Dialog onCreateDialog(int id) {
switch(id) {
case DIALOG_CONFIRMIMPORT_ID:
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
String message = String.format(getString(R.string.importstudentfileconfirm),SelectedFile.getfileName());
builder.setMessage(message)
.setCancelable(false)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// Activity.this.finish();
// startActivity(new Intent(Activity.this, LOL.class));
}
})
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
SelectedFile = null;
dismissDialog(DIALOG_CONFIRMIMPORT_ID);
mFiles.notifyAll();
}
});
AlertDialog alert = builder.create();
return alert;
}
}
return null;
}
非常感谢您的帮助!
你完全正确!非常感谢您的快速回答。干杯! – 2010-10-27 22:57:01
如果这回答了您的问题,您是否可以通过单击答案左侧的复选框大纲来接受答案。谢谢! – plainjimbo 2010-10-27 22:59:02
完成。由于某种原因,复选框未显示在我的Firefox上。 – 2010-10-27 23:25:20