private void showUserAddOrEditDialog(Users user){
View view = getInflater().inflate(R.layout.user_add_or_update,null);
** EditText user_name_et = (EditText)view.findViewById(R.id.edit_et);**
String title;
if(user==null){
title = getString(R.string.dialog_title_user,
new Object[]{getString(R.string.title_add)});
}else{
user_name_et.setText(user.getuserName());
title = getString(R.string.dialog_title_user,
new Object[]{getString(R.string.title_edit)});
}
AlertDialog.Builder builder = new AlertDialog.Builder(this);
**builder.setView(user_name_et);**
builder.setTitle(title);
builder.setIcon(R.drawable.emotion_loveyou);
builder.setNeutralButton(getString(R.string.buttom_text_save),
new OnAddOrEditUserListener(user,user_name_et,true));
builder.setNegativeButton(getString(R.string.buttom_text_cancel),
new OnAddOrEditUserListener(null,null,false));
builder.show();
}
今天分享的是关于最近遇到的一个代码异常 。意思大概是,这个特定的子view已经有一个父view了,你必须先在父view中调用removeView()函数才能在其他把它设为其他view的子view 如上代码 其中标识星号的即为引起出错的代码 代码中可以看到,view是通过inflate函数创建的,紧接着,通过view的findviewbyId方式获得了user_name_et的实例,注意,这里即指定其父view为view 紧接着调用 builder.setView(user_name_et);