我搜索了一会儿,发现没有解决方案。
我尝试了dialog.cancel()
和dialog.dismiss
以及其他内容,但没有任何效果。
我有一个Listview,您可以通过单击OptionsMenu更改此listview项的名称,然后在Listview中选择一个项目,现在打开一个alertDialog,您可以在其中写入一个新名称。 然后你可以说“保存”或“取消”。直到没有一切正常,但如果再次按下一个项目,则会打开另一个alertDialog,您可以再次更改名称。 这不应该发生,你应该只修改一次名称。
代码:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.changeHersteller:
//TODO bleibt "offen" wenn man nochmals auf ein item klickt
Toast.makeText(getApplicationContext(), R.string.takeHersteller, Toast.LENGTH_LONG).show();
final ListView listView = (ListView) findViewById(R.id.listViewHersteller);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
final AlertDialog.Builder builder = new AlertDialog.Builder(Hersteller.this);
final EditText editText = new EditText(Hersteller.this);
builder.setView(editText);
builder.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String oldName = listView.getItemAtPosition(position).toString();
String newName = editText.getText().toString();
//Log.i(TAG, oldName);
//Log.i(TAG, newName);
if(!newName.isEmpty()){
updateFolder(mainFolder, oldName, newName);
setContent(mainFolder, listView);
}
dialog.dismiss(); //don't work
}
})
.setNegativeButton(R.string.abort, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss(); //don't work
return;
}
});
AlertDialog alertDialog = builder.create();
alertDialog.setTitle(R.string.changeHersteller);
alertDialog.show();
}
});
return true;
}
return true;
}