我有问题。在我的活动中,我有一个按钮,当我点击它时,我称之为方法。这个方法给我一个带有listview的警告对话框,我希望将项目点击保存到一个变量,然后我想关闭方法,但它不关闭!为什么??我发布了该方法的代码。我的logcat没有给我任何错误。谁能帮我??请
private void getValuta() {
AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);
final ListView lV = new ListView(this);
Cursor c = null;
miaAlert.setTitle("Choose Valuta");
c = vdb.fetchValuteListView("0");
startManagingCursor(c);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
c,
new String[] {
ValuteDb.ValuteMetaData.VALUTE_NAME_KEY},
new int[] { android.R.id.text1});
stopManagingCursor(c);
lV.setAdapter(adapter);
miaAlert.setView(lV);
miaAlert.setCancelable(false);
lV.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
String riga = String.valueOf(id);
String confr = vdb.getRecord(riga,2);
System.out.println("position= " + position + "/id= " + id+"/nome= "+confr);
new_valuta = vdb.getRecord(riga,2);
listdb.update("9", "Valuta", new_valuta, "2");
c_list.requery();
return;
}
});
AlertDialog alert = miaAlert.create();
alert.show();}
答案 0 :(得分:2)
您缺少的是实际关闭对话框的调用:
AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);
final ListView lV = new ListView(this);
miaAlert.setTitle("Choose Valuta");
miaAlert.setView(lV);
miaAlert.setCancelable(false);
final AlertDialog alert = miaAlert.create();
lV.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
String riga = String.valueOf(id);
String confr = vdb.getRecord(riga,2);
System.out.println("position= " + position + "/id= " + id+"/nome= "+confr);
new_valuta = vdb.getRecord(riga,2);
listdb.update("9", "Valuta", new_valuta, "2");
c_list.requery();
alert.dismiss();
}
});
alert.show();
当然,除了您的Cursor管理代码之外,这也是。
答案 1 :(得分:1)
我认为您必须在alert.dismiss()
方法中调用onItemClick(...)
。
答案 2 :(得分:0)
您无法执行任何操作来关闭对话框。如果设置按钮,则默认行为是在单击时关闭对话框,但在这种情况下,您使用的是带有自定义OnItemClickListener的自定义视图。
您可以通过调用alert.dismiss();
- 方法中的onItemClick()
来明确关闭对话框。
答案 3 :(得分:0)
使用alert.dismiss()来关闭对话框