我正在尝试向我的listView提供数据,当点击FAB时,它会显示一个带有一个editText和两个按钮的对话框。第一次允许我向ListView提供数据。但是当我尝试第二次时,它会显示以下错误:
FATAL EXCEPTION: main
Process: com.example.app.wounderlist.wounderlist, PID: 3790
java.lang.IllegalStateException: 指定的子项已经有了父级。您必须首先在子项的父级上调用 removeView()。 at android.view.ViewGroup.addViewInner(ViewGroup.java:3562) at android.view.ViewGroup.addView(ViewGroup.java:3415) at android.view.ViewGroup.addView(ViewGroup.java:3391) at android.support.v7.app.AlertController.setupCustomContent(AlertController.java:647) at android.support.v7.app.AlertController.setupView(AlertController.java:463) at android.support.v7.app.AlertController.installContent(AlertController.java:226) at android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) at android.app.Dialog.dispatchOnCreate(Dialog.java:361) at android.app.Dialog.show(Dialog.java:262) at com.example.app.wounderlist.wounderlist.HomeFragment$1.onClick(HomeFragment.java:79) at android.view.View.performClick(View.java:4444) at android.view.View$PerformClick.run(View.java:18457) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5113) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) at dalvik.system.NativeStart.main(Native Method)
这是我的代码:
//create a dialog box with a editText and a Add button when pressing the #FAB
final EditText taskEditText = new EditText(getActivity());
mFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle("Add a new task")
.setMessage("What do you want to do next?")
.setView(taskEditText)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//for getting text from the editText
String itemText = taskEditText.getText().toString();
mItemsAdapter.add(itemText);
}
})
.setNegativeButton("Cancel", null)
.create();
dialog.show();
}
});