Was muss importiert werden oder wie kann ich den Layout-Inflater an anderen Orten als bei Aktivitäten aufrufen?
public static void method(Context context){
//this doesn't work the getLayoutInflater method could not be found
LayoutInflater inflater = getLayoutInflater();
// this also doesn't work
LayoutInflater inflater = context.getLayoutInflater();
}
Ich kann getLayoutInflater
nur in Aktivität anrufen , ist das eine Einschränkung? Was ist, wenn ich ein benutzerdefiniertes Dialogfeld erstellen und die Ansicht dafür aufblasen möchte oder wenn ich eine Toastnachricht mit einer benutzerdefinierten Ansicht haben möchte, die von einem Dienst angezeigt wird? Ich habe nur den Kontext des Dienstes, für den ich keine Aktivität habe aber ich möchte benutzerdefinierte Nachricht anzeigen.
Ich brauche den Inflater an Stellen im Code, die nicht in der Aktivitätsklasse sind.
Wie kann ich das machen ?
getSystemService
aus irgendeinem (unwahrscheinlichen) Grund kein Objekt vom TypLayoutInflater
zurückgibt, würde mein Code eine Laufzeitausnahme verursachen.Oder ...
quelle
oder
View.inflate(context, layout, parent)
quelle
Mit dem Kontextobjekt können Sie LayoutInflater aus folgendem Code abrufen
quelle
quelle
Verwenden Sie dies stattdessen!
quelle