Я хочу передавать данные из одного диалога в другой. у меня есть диалог onCreateContextMenu, чтобы показать опции на ListViewполучить обновление Значение в комплекте AlertDialog каждый раз
Код:
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case R.id.update_item:
Object o1 = lv1.getItemAtPosition(info.position);
ItemDetails obj_itemDetails1 = (ItemDetails) o1;
/*Toast.makeText(getApplicationContext(),
"You have chosen : " + " " + obj_itemDetails1.getId(),
Toast.LENGTH_LONG).show(); */
Bundle arg= new Bundle();
arg.putString("key", obj_itemDetails1.getId());
showDialog(DIALOG_ID, arg);
return true;
}
return false;
}
Я посылаю данные из этого диалогового окна оповещения Диалог с помощью Bundle.
Код:
protected final Dialog onCreateDialog(final int id, Bundle arg) {
Dialog dialog = null;
switch (id) {
case DIALOG_ID:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = this.getLayoutInflater();
arg.getString("key");// getting same value here
builder.setMessage(arg.getString("key"));
builder.setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.setNegativeButton("Update", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.setTitle("Update Info");
dialog = alert;
break;
default:
}
return dialog;
}
}
из
Bundle arg= new Bundle();
arg.putString("key", obj_itemDetails1.getId());
showDialog(DIALOG_ID, arg);
я посылаю новые каждый раз данных в соответствии с выбранной позицией
но в arg.getString("key");
в оповещении Диалог я получаю же каждый раз данных. Данные не обновляются, даже если я нажал на новую позицию.
Я использовал arg.remove("key");
и arg.clear();
, но они не сработали.
Как я могу достичь этого. или любая другая идея передать данные в AlertDialog.