Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在DialogFragment的onClickListener中从EditText调用getText()时发生NullPointerException_Java_Android - Fatal编程技术网

Java 在DialogFragment的onClickListener中从EditText调用getText()时发生NullPointerException

Java 在DialogFragment的onClickListener中从EditText调用getText()时发生NullPointerException,java,android,Java,Android,我有一个带有EditText的自定义布局的DialogFragment。我试图在“添加”单击时获取EditText值,但我得到了NullPointerException,它崩溃了 public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); final View

我有一个带有EditText的自定义布局的
DialogFragment
。我试图在“添加”单击时获取EditText值,但我得到了
NullPointerException
,它崩溃了

public Dialog onCreateDialog(Bundle savedInstanceState) {
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());

     final View view = getActivity().getLayoutInflater().inflate(R.layout.add_note_dialog_fragment, null);
     alertDialogBuilder.setView(view);
     alertDialogBuilder.setTitle("Add New Note: ");
     alertDialogBuilder.setPositiveButton("ADD", new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {

             EditText noteTextEditText = (EditText) view.findViewById(R.id.notesText);
             EditText noteTitleEditText = (EditText) view.findViewById(R.id.noteTitle2);

             Editable noteText = noteTextEditText.getText();
             // ^^^ HERE I GET NULL POINTER EXCEPTION

             String y = noteText.toString();                 
             String noteTitle = noteTitleEditText.getText().toString();
             DatabaseHelper.addInABSTRACT_NOTES(noteText, noteTitle);
             Toast.makeText(getActivity(), "ADDED ..", Toast.LENGTH_SHORT).show();
             dialog.dismiss();
         }
     });
请建议我如何让它工作? 提前谢谢


日志:

07-08 00:08:47.030: E/AndroidRuntime(16500): FATAL EXCEPTION: main
07-08 00:08:47.030: E/AndroidRuntime(16500): Process: com.shumail.newsroom, PID: 16500
07-08 00:08:47.030: E/AndroidRuntime(16500): java.lang.NullPointerException
07-08 00:08:47.030: E/AndroidRuntime(16500):    at com.g_node.gca.abstracts.AddNoteDialogFragment$1.onClick(AddNoteDialogFragment.java:70)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at android.os.Handler.dispatchMessage(Handler.java:102)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at android.os.Looper.loop(Looper.java:136)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at android.app.ActivityThread.main(ActivityThread.java:5086)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at java.lang.reflect.Method.invokeNative(Native Method)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at java.lang.reflect.Method.invoke(Method.java:515)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-08 00:08:47.030: E/AndroidRuntime(16500):    at dalvik.system.NativeStart.main(Native Method)

布局XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"  >

<TextView
    android:id="@+id/noteTitleLabel" android:text="Note Title: " 
    android:layout_width="wrap_content" android:layout_height="wrap_content" />

<EditText
    android:id="@+id/noteTitle2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"      
    android:inputType="text"
    android:hint="Enter Note Title..."
    android:gravity="top"
    android:layout_below="@+id/noteTitleLabel"
    android:singleLine="true" />

<TextView
    android:id="@+id/noteTextLabel" android:text="Note Content: " 
    android:layout_width="wrap_content"  android:layout_below="@+id/noteTitle2"  android:layout_height="wrap_content" />


<EditText
    android:id="@+id/noteText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"      
    android:inputType="textMultiLine"
    android:hint="Enter Note Content..."
    android:lines="5"
    android:gravity="top"
    android:layout_below="@+id/noteTextLabel"
    android:singleLine="false" />


问题在于ID。我错误地编写了
R.ID.notesText
,而它应该是
R.ID.noteText

有两种可能:
noteTextEditText
为null或
noteTextEditText.getText()
返回null。请验证哪个值为空。无需调用
toString()
在哪里设置contentView?您实际在哪里显示alertDialog。。您创建了它,但从未调用.show(),我正在从viewpager片段调用show()<代码>addNoteFragment.show(getFragmentManager(),“片段添加注释”)@Jens:你能告诉我如何验证哪个值是空的吗?我已经更新了你的问题LogCat@ShumailMohy-如果删除
toString()
方法,则会出现异常
noteTextEditText
null。或者使用调试器。