我有一個列表視圖與一些項目。我試圖爲everey項目實現「編輯」選項,用戶可以通過對話框更改項目字段的文本。當用戶單擊項目佈局中的按鈕時會顯示該對話框,因此通過listView的適配器內部的button.onClickListener(...)
調用該對話框。在AlertDialog中自動填充EditText
我的問題是,我想向用戶顯示對話框中的項目的當前信息,所以我做了一堆EditText在視圖中,我想填充項目的當前數據,當對話框是創建並讓用戶刪除他想要的字段(我的意思是editTexts)中的文本並在其中寫入新文本。但是,由於我在對話框中放大視圖(new AlertDialog.Builder(getActivity()).setView(view)
),用戶第二次嘗試編輯項目時,我的應用程序崩潰,因爲對話框中充值的view
已經有父項。我不想刪除視圖的父項,因爲我正在將視圖膨脹到button.onClickListener(...)
之外,因爲我希望當前數據出現在創建對話框中。
我該怎麼做?
在這裏,你有一些代碼,希望這是不夠的:
適配器爲我的我的片段中的ListView:
public class ContactosAdapter extends ArrayAdapter<Contacto> { //This is an inner class inside myFragment
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
inflater = LayoutInflater.from(context);
view = inflater.inflate(R.layout.dialog_nuevo_contacto, null);
...
buttonEditar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog dialog = new AlertDialog.Builder(getActivity()).setView(view).setTitle(R.string.editar_contacto).setPositiveButton(R.string.aceptar, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
...
}
}).setNegativeButton(R.string.cancelar, null).setCancelable(false).create();
dialog.show();
}
});