我正在使用和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