java - 从 editText 获取文本时 onClick 崩溃

标签 java android onclick nullpointerexception android-edittext

当对按钮执行 onClick 方法以显示 editText 中的文本时,我的应用程序由于 NullPointerException 而崩溃,我不知道为什么。当我完全删除对 editText 的引用时,一切正常。我做错了什么?

public void onClick(View v) {
    EditText editText1 = (EditText) v.findViewById (R.id.editText1);

    switch (v.getId()) {       
    //add entry to the List
        case R.id.button1:

            Toast.makeText(getActivity(), "Clicked on add button" + " CRN: " + editText1.getText().toString(), Toast.LENGTH_LONG).show();

        case R.id.button2:
            Toast.makeText(getActivity(), "Clicked on delete button", Toast.LENGTH_LONG).show();


    }
   }

有问题的错误:

01-12 19:32:57.726: E/AndroidRuntime(23216): FATAL EXCEPTION: main
01-12 19:32:57.726: E/AndroidRuntime(23216): java.lang.NullPointerException
01-12 19:32:57.726: E/AndroidRuntime(23216):    at com.example.project.ClassesFragment.onClick(ClassesFragment.java:85)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.view.View.performClick(View.java:4475)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.view.View$PerformClick.run(View.java:18786)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.os.Handler.handleCallback(Handler.java:730)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.os.Looper.loop(Looper.java:137)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at android.app.ActivityThread.main(ActivityThread.java:5419)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at java.lang.reflect.Method.invokeNative(Native Method)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at java.lang.reflect.Method.invoke(Method.java:525)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:115)
01-12 19:32:57.726: E/AndroidRuntime(23216):    at dalvik.system.NativeStart.main(Native Method)
01-12 19:33:12.040: I/Process(23216): Sending signal. PID: 23216 SIG: 9

最佳答案

如果是在 fragment 布局中,则在 onCreateView

 EditText ediText1;
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
     View v = inflater.inflate(R.layout.fragmentlayout, container, false);
              editText1 = (EditText) v.findViewById (R.id.editText1);
    return v;
}

您可能引用了错误的 ID。

你错过了休息时间

case R.id.button1:

        Toast.makeText(getActivity(), "Clicked on add button" + " CRN: " + editText1.getText().toString(), Toast.LENGTH_LONG).show();

break; // missing

关于java - 从 editText 获取文本时 onClick 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083487/

相关文章:

javascript - 单击时的 css3 动画

javascript - JS函数中传入 "this"和 "event"

java - 如何使用 Java 以编程方式从 MS Exchange Server 获取电子邮件 header ?

java - 设计: Emailing System in Java

java - 实现从main到fragment的菜单项

android - 错误:程序类型已经存在:com.google.android.gms.common.internal.zzb

安卓磨损 : How to get raw PPG data?

javascript 无法在 IE 中使用单选按钮 onClick 工作

Java 线程和 MySQL

以字节为单位的 Java NegativeArraySizeException