应用程序崩溃与空对象引用

Dar*_*han 0 android android-edittext android-fragments

我正在使用一个片段,编译器不会抛出任何错误.但是当我按下我创建了一个监听器的指定按钮时,该应用程序崩溃了!logcat引用了null object reference这部分代码......

private ImageView i;
    private String key = null;
    private ArrayList<String> lst = new ArrayList();

    private OnClickListener lstn = new OnClickListener() {
        public void onClick(View v)
        {
            EditText et1 = (EditText) v.findViewById(R.id.editText1);

            profilname = et1.getText().toString();


            new getPbLink().execute(new String[]{profilname});

        }

    };


    private OnClickListener lstn1 = new OnClickListener() {
        public void onClick(View v) 
        {
            if (pb == null)
            {
                Toast.makeText(getActivity(),"nodp", 0)
                .show();
            } else 

            { 
                SaveImage(pb);
                Toast.makeText(getActivity(), "saved", 0)
                    .show();
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

该怎么办?logcat -

    Process: com.nav.drawer, PID: 21833
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at com.nav.drawer.HomeFragment$100000001.onClick(HomeFragment.java:61)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.view.View.performClick(View.java:4785)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.view.View$PerformClick.run(View.java:19884)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.os.Handler.handleCallback(Handler.java:739)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.os.Handler.dispatchMessage(Handler.java:95)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.os.Looper.loop(Looper.java:135)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at android.app.ActivityThread.main(ActivityThread.java:5343)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at java.lang.reflect.Method.invoke(Native Method)
12-22 20:43:14.696 21833 21833 E   AndroidRuntime                               at java.lang.reflect.Method.invoke(Method.java:372)
Run Code Online (Sandbox Code Playgroud)

Alb*_*ert 7

在"onClick"事件上,传递的视图是您单击的视图.因此,如果您单击按钮,则无法找到任何EditText,因为此处不存在.

您需要在包含它的视图上调用函数"findViewById",而不是在方法onClick传递的视图上调用.