当我执行以下脚本时,我收到错误The specified child already has a parent. You must call removeView() on the child's parent first.
public void EditDaytoDayTask(Bundle bundle) {
Log.i(TAG,"Inside editdaytoday");
//((ViewGroup)view.getParent()).removeView(view);
final String taskName=bundle.getString("TASKDAYTODAY");
Log.i(TAG,"TAsknamedate:"+taskName+" "+date);
AlertDialog.Builder alertViewTaskDescription=new AlertDialog.Builder(getActivity());
LayoutInflater inflaterViewTaskDescription=(LayoutInflater)getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
viewTaskWithDescription=(View)inflaterViewTaskDescription.inflate(R.layout.viewtaskwithdescriptionlayout,null,false);
TextView textviewTask=(TextView)viewTaskWithDescription.findViewById(R.id.taskidDaytoDayView);
TextView textviewDescription=(TextView)viewTaskWithDescription.findViewById(R.id.descriptionidDaytoDayView);
textviewTask.setText(taskName);
final String descriptionTask=objTaskDb.FetchDescriptionTask(date,taskName);
textviewDescription.setText(descriptionTask);
alertViewTaskDescription.setView(viewTaskWithDescription);
alertViewTaskDescription.setPositiveButton("EDIT",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//((ViewGroup)view.getParent()).removeView(view);
AlertDialog.Builder alertEditTaskDescription=new AlertDialog.Builder(getActivity());
LayoutInflater inflaterEditTaskDescription=(LayoutInflater)getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE);
View viewEditTaskDescription=(View)inflaterEditTaskDescription.inflate(R.layout.edittaskwithdescriptionlayout,null,false);
//((ViewGroup)viewEditTaskDescription.getParent()).removeAllViews();
EditText edittextTask=(EditText)viewEditTaskDescription.findViewById(R.id.taskidDaytoDayEdit);
EditText edittextDescription=(EditText)viewEditTaskDescription.findViewById(R.id.descriptionidDaytoDayEdit);
edittextTask.setText(taskName);
edittextDescription.setText(descriptionTask);
alertEditTaskDescription.setView(edittextDescription);
alertEditTaskDescription.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alertViewTaskDescription.show();
}
}
如何解决此错误?任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
Hai我发现这个错误并解决了。这是我的简单错误,在setview中添加编辑文本而不是视图。我改变了
alertEditTaskDescription.setView(viewEditTaskDescription);
instead of this
alertEditTaskDescription.setView(edittextDescription);
答案 1 :(得分:0)
它对我来说很好..
public void EditDaytoDayTask() {
// Log.i(TAG,"Inside editdaytoday");
//((ViewGroup)view.getParent()).removeView(view);
//final String taskName=bundle.getString("TASKDAYTODAY");
//Log.i(TAG,"TAsknamedate:"+taskName+" "+date);
final AlertDialog.Builder alertViewTaskDescription=new AlertDialog.Builder(hostActReference);
LayoutInflater inflaterViewTaskDescription=(LayoutInflater)hostActReference.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewTaskWithDescription = (View)inflaterViewTaskDescription.inflate(R.layout.pdf_save_dialog,null,false);
//TextView textviewTask=(TextView)viewTaskWithDescription.findViewById(R.id.taskidDaytoDayView);
//TextView textviewDescription=(TextView)viewTaskWithDescription.findViewById(R.id.descriptionidDaytoDayView);
//textviewTask.setText(taskName);
//final String descriptionTask=objTaskDb.FetchDescriptionTask(date,taskName);
// textviewDescription.setText(descriptionTask);
alertViewTaskDescription.setView(viewTaskWithDescription);
alertViewTaskDescription.setPositiveButton("EDIT",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//((ViewGroup)view.getParent()).removeView(view);
AlertDialog.Builder alertEditTaskDescription=new AlertDialog.Builder(hostActReference);
LayoutInflater inflaterEditTaskDescription=(LayoutInflater)hostActReference.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View edittextDescription=(View)inflaterEditTaskDescription.inflate(R.layout.save_dialog,null,false);
//((ViewGroup)viewEditTaskDescription.getParent()).removeAllViews();
//EditText edittextTask=(EditText)viewEditTaskDescription.findViewById(R.id.taskidDaytoDayEdit);
// EditText edittextDescription=(EditText)viewEditTaskDescription.findViewById(R.id.descriptionidDaytoDayEdit);
//edittextTask.setText(taskName);
//edittextDescription.setText(descriptionTask);
alertEditTaskDescription.setView(edittextDescription);
alertEditTaskDescription.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alertEditTaskDescription.setNegativeButton("Cancel", null);
alertEditTaskDescription.create().show();
}
});
alertViewTaskDescription.setNegativeButton("Cancel", null);
alertViewTaskDescription.create().show();
}