2016-04-05 7 views
-1

Ich habe die folgende, um die mehrere Fälle von Toast NachrichtenWie kann ich einen benutzerdefinierten Toast habe mit einer öffentlichen statischen Klasse

public class ExtraUtils { 

public static Activity MyActivity; 
public static LayoutInflater mInflater; 

public static void MyToast(View view,int ToastCase) 
{ 
    Context context=MyActivity.getApplicationContext(); 
    mInflater = LayoutInflater.from(context); 

    View customToastroot =mInflater.inflate(R.layout.custom_toast, null); 
    Toast customtoast=new Toast(context); 
    TextView text = (TextView) customToastroot.findViewById(R.id.txtToast); 
    // Set the Text to show in TextView 
    switch(ToastCase) 
    { 
     case 1: 
      text.setText("You cannot Select this Again"); 
      break; 
     case 2: 
      text.setText("Oops Something went wrong"); 
      break; 
    } 
} 
} 

zu kontrollieren und ich nenne es wie ExtraUtils.MyToast (view, 1), aber ich erhalte eine null-Ausnahme bei

Context context=MyActivity.getApplicationContext(); 

Antwort

1

ändern

Context context=MyActivity.getApplicationContext();

zu

Context context=MyActivity.this;

bearbeiten

Sorry, ich dachte, dass Sie in der MyActivity den Code schreiben selbst. Was Sie tun müssen, ist,

public static void MyToast(View view,int ToastCase, Context context) 

und in MyActivity von wo aus Sie nennen es tun,

ExtraUtils.MyToast(view, 1, MyActivity.this) 
+0

Wenn ich es geben, heißt es Klassenname in dem Punkt der MyActivity erwartet –

+0

@MiaoulisNikos meine bearbeiten prüfen. – gprathour

+1

gleiche Antwort, die ich posten würde, sah aber deine Antwort. Nette Arbeit @MiaoulisNikos –

1

Ihr Code wird nicht funktionieren !!! MyActivity ist nicht initialisiert ...

den Inhalt innerhalb der Parameter senden

public static void MyToast(Content context,View view,int ToastCase) { 
    // Context context=MyActivity.getApplicationContext(); 
    mInflater = LayoutInflater.from(context); 
    View customToastroot =mInflater.inflate(R.layout.custom_toast, null); 
    Toast customtoast=new Toast(context); 
    TextView text = (TextView) customToastroot.findViewById(R.id.txtToast); 
    // Set the Text to show in TextView 
    switch(ToastCase) { 
     case 1: 
      text.setText("You cannot Select this Again"); 
      break; 
     case 2: 
      text.setText("Oops Something went wrong"); 
      break; 
    } 
    //...Write Code for display toast 
}