2016-12-22 15 views
0

フラグメントを使用していますが、コンパイラはエラーをスローしません。 しかし、リスナーを作成した特定のボタンを押すと、アプリケーションがクラッシュします。 logcatはアプリケーションでnullオブジェクトを参照するとクラッシュする

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(); 
      } 
     } 
    }; 

何をする...コードのこの部分にnull object referenceを指し? logcat - "のonClick" イベントで

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) 
+0

ログを送信して、参照先の特定のビューをnullにすることができます。 –

+0

あなたは同じID:R.id.editText1を使ってEditTextとAutoCompleteTextViewを膨らませているようです。また、id:R.id.editText1が正しいかどうかを確認してください。 –

+0

@ShahbazAhmed私はオートコンプリートTextviewを削除しようとしましたが、editText.getText()でヌルオブジェクトリファレンスをスローしました。 – DarShan

答えて

7

、渡されたビューを使用すると、クリックした図です。したがって、ボタンをクリックしている場合は、ここには存在しないため、EditTextを見つけることはできません。

onClickメソッドによって渡されたビューではなく、それを含むビューで関数findViewByIdを呼び出す必要があります。

関連する問題