2016-12-22 2 views
0

Ich benutze ein Fragment, der Compiler wirft keinen Fehler. Aber wenn ich den angegebenen Button drücke, für den ich einen Listener erstellt habe, stürzt die App ab! die logcat bezieht sich auf diesen Teil des Codes einen null object reference ...App Absturz mit einem Null-Objekt Referenz

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

Was ist zu tun? 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) 
+0

Veröffentlichen Sie Ihr Protokoll, damit wir die spezifische Ansicht, auf die es verweist, als null sehen können. –

+0

Sie scheinen EditText und AutoCompleteTextView mit derselben ID zu inflationieren: R.id.editText1. Überprüfen Sie auch die ID: R.id.editText1, wenn es korrekt ist –

+0

@ShahbazAhmed Ich habe versucht, Autocomplete Textview zu entfernen, aber es wirft noch Null Objektverweis auf editText.getText() – DarShan

Antwort

7

Auf einem "onClick" Ereignis hat die Ansicht ist die Ansicht, die Sie geklickt haben. Wenn Sie also auf eine Schaltfläche klicken, können Sie keinen EditText finden, da dieser hier nicht existiert.

Sie müssen die Funktion "findViewById" in der Ansicht aufrufen, die sie enthält, und nicht in der Ansicht, die von der Methode onClick übergeben wird.

Verwandte Themen