2016-04-19 7 views
0

Ich versuche, benutzerdefinierte Toast zu implementieren und unten ist der Code, den ich schrieb und hakte es an einen onClickeListner asusualGelb Highlight während benutzerdefinierte Toast mit in android

Button customToastButton = (Button) this.findViewById(R.id.add_to_cart); 
     customToastButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       //get the LayoutInflater and inflate the custom_toast layout 
       LayoutInflater inflater = getLayoutInflater(); 
       View layout = inflater.inflate(R.layout.cart_toast, (ViewGroup) 
         findViewById(R.id.toast_layout_root)); 

       //get the TextView from the custom_toast layout 
       TextView text = (TextView) layout.findViewById(R.id.toastText); 
       text.setText("Item as been added to cart"); 

       //create the toast object, set display duration, 
       //set the view as layout that's inflated above and then call show() 
       Toast t = new Toast(getApplicationContext()); 
       t.setDuration(Toast.LENGTH_SHORT); 
       t.setView(layout); 
       t.show(); 
      } 
     }); 

Und der Code verwendet wird gelb markiert den unten zeigt error.well es nicht als Fehler in logcat und Code zeigt arbeitet fine.The highlightend Teil sagt auch "produzieren können‚java.lang.NullPointerException‘

Method invocation 'customToastButton.setOnClickListener(new View.OnClickListener() {              
public void onClick(Vi...' may produce 'java.lang.NullPointerException' less... (Ctrl+F1) 
    This inspection analyzes method control and data flow to report possible conditions that are always true or false, expressions whose value is statically proven to be constant, and situations that can lead to nullability contract violations. 
    Variables, method parameters and return values marked as @Nullable or @NotNull are treated as nullable (or not-null, respectively) and used during the analysis to check nullability contracts, e.g. report possible NullPointerException errors. 
    More complex contracts can be defined using @Contract annotation, for example: 
    @Contract("_, null -> null") — method returns null if its second argument is null 
@Contract("_, null -> null; _, !null -> !null") — method returns null if its second argument is null and not-null otherwise 
@Contract("true -> fail") — a typical assertFalse method which throws an exception if true is passed to it 
    The inspection can be configured to use custom @Nullable 
    @NotNull annotations (by default the ones from annotations.jar will be used) 

ich verstehe einfach nicht, den Grund, warum dies verursacht Fehler, ich bitte Sie um einen Blick darauf. Thankyou im Voraus

+0

'findViewById' kann null zurückgeben ... also' customToastButton.setOnClickListener' kann NPE erzeugen ... es ist nur eine Warnung ... Sie können die Warnung unterdrücken mit Annotation/Kommentar oder eine Null-Überprüfung – Selvin

+0

NPE.? Wie auch immer, um die Warnung zu entfernen? –

Antwort

1

Sie einfach überprüfen können, wenn Ihre customToastButton, bevor Sie die

if(customToastButton!=null){ 
    customToastButton.setOnClickListener(...) 
... 
} 

Die Warnung OnClickListener nicht null ist, gezeigt, denn wenn die Button nicht vorhanden ist und Sie weiterhin mit ihm arbeiten ein NullPointerException wird geworfen werden.

+0

Funktioniert wie ein Charme Danke für Ihre Unterstützung, es bedeutete mir eine Menge –

+0

sicher kein Problem! wäre toll, wenn Sie die Antwort als richtig akzeptieren könnten :) – daco

+0

Sicher, übrigens wissen Sie irgendetwas im Zusammenhang mit der Entwicklung eines Einkaufswagens in Android.? wie passing data's hint würde genug tun –