5 java android listview android-layout
我正在尝试向我的 listView 提供数据,当单击 FAB 时,它会显示一个带有一个 editText 和两个按钮的对话框。第一次它允许我向 ListView 提供数据。但是当我第二次尝试时,它显示了错误:
致命异常:主要
过程:com.example.app.wounderlist.wounderlist,PID:3790
java.lang.IllegalStateException:在 指定的 孩子 已经 有 一个 父。您 必须 在孩子的父母上调用 removeView() 首先。 在 android.view.ViewGroup.addViewInner(ViewGroup.java:3562) 在 android.view.ViewGroup.addView(ViewGroup.java:3415) 在 android.view.ViewGroup.addView(ViewGroup.java:3391) 在 android.support。 v7.app.AlertController.setupCustomContent(AlertController.java:647) 在 android.support.v7.app.AlertController.setupView(AlertController.java:463) 在 android.support.v7.app.AlertController.installContent(AlertController.java:226) 在 android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) 在 android.app.Dialog.dispatchOnCreate(Dialog .java:361) 在 android.app.Dialog.show(Dialog.java:262) 在 com.example.app.wounderlist.wounderlist.HomeFragment$1.onClick(HomeFragment.java:79) 在 android.view.View.performClick(View.java:4444) 在 android.view.View$PerformClick.run(View.java:18457) 在 android.os.Handler.handleCallback(Handler.java:733) 在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)5113) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit. java:796) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 在 dalvik.system.NativeStart.main(Native Method)5113) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit. java:796) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 在 dalvik.system.NativeStart.main(Native 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) 在 dalvik.system.NativeStart.main(Native 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) 在 dalvik.system.NativeStart.main(Native Method)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 在 dalvik.system.NativeStart.main (本机方法)515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 在 dalvik.system.NativeStart.main (本机方法)第612话第612话
//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();
}
});
Run Code Online (Sandbox Code Playgroud)
您正在创建AlertDialog每个按钮单击的新实例。AlertDialog在OnClickListener内部类之外创建一个 final 。
尝试这个:
final EditText taskEditText = new EditText(getActivity());
AlertDialog.Builder builder1 = new AlertDialog.Builder(getActivity());
builder1.setMessage("What do you want to do next?");
builder1.setCancelable(true);
builder1.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);
}
});
builder1.setNegativeButton(
"Cancel", null);
AlertDialog alert11 = builder1.create();
mFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alert11.show();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |