Android toast.makeText contexte de l'erreur
J'ai du mal à appeler toast.Maketext à l'intérieur de l'emplacement de l'auditeur. Le contexte n'est pas disponible, ce que je fais mal?
private LocationListener ll = new LocationListener() {
public void onLocationChanged(Location l) {
//SMSReceiver.l = l;
String s = "";
s += "\tTime: " + l.getTime() + "\n";
s += "\tLatitude: " + l.getLatitude() + "°\n";
s += "\tLongitude: " + l.getLongitude() + "°\n";
s += "\tAccuracy: " + l.getAccuracy() + " metres\n";
s += "\tAltitude: " + l.getAltitude() + " metres\n";
s += "\tSpeed: " + l.getSpeed() + " metres\n";
//TODO Auto-generated method stub
if (l.hasSpeed()) {
mySpeed = l.getSpeed();
}
Log.i(DEBUG_TAG, "On Location Changed: (" + s + ")");
ERROR HERE--> Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
}
public void onProviderDisabled(String arg0) {
//TODO Auto-generated method stub
}
public void onProviderEnabled(String arg0) {
//TODO Auto-generated method stub
}
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
//TODO Auto-generated method stub
}
};
Essayez ce Toast.makeText(getcontexteapplication(), s, du pain grillé.LENGTH_SHORT).show();
J'ai essayé et j'obtiens: La méthode getcontexteapplication() n'est pas défini pour le type nouveau: LocationListener(){}
Il est à noter que cette BroadcastReceiver et non Activité
Hey, essayez ceci : stackoverflow.com/questions/1618800/...
passer une instance de votre activité et de faire comme ceci myactivity.getcontexteapplication()
J'ai essayé et j'obtiens: La méthode getcontexteapplication() n'est pas défini pour le type nouveau: LocationListener(){}
Il est à noter que cette BroadcastReceiver et non Activité
Hey, essayez ceci : stackoverflow.com/questions/1618800/...
passer une instance de votre activité et de faire comme ceci myactivity.getcontexteapplication()
OriginalL'auteur ProNeticas | 2011-05-03
Vous devez vous connecter pour publier un commentaire.
Si ce
LocationListener
déclaration est à l'intérieur d'une activité de classe (disons:MyActivity
), vous devez créer leToast
:Dans le cas où le
LocationListener
est déclaré dans un contextless classe, comme dans votre cas, unBroadcastReceiver
, vous pouvez passer le contexte de son constructeur:veuillez expliquer votre souci, car il n'est pas clair. Ce qui vous fait penser que l'anonyme de l'instanciation de l': LocationListener n'est pas déclarée à l'intérieur d'un contextful de composants (étant une commune est un choix de conception)?
Merci de lire son commentaire "je tiens à noter que cette BroadcastReceiver et pas d'Activité" probablement, il a oublié de modifier la question. Depuis que j'ai le même problème avec lui
Sans le code complet, il est difficile de prévoir comment l'op a structuré le flux, mais si les deux
BroadcastReceiver
(ouLocationListener
) est dans une classe à part, et que vous voulez vraiment effectuer des opérations d'interface utilisateur graphique, vous devez passer un contexte à son constructeur à le faire. Je vais mettre à jour ma réponse avec un échantillon rapide.Correct, et besoin de quelques changements dans la déclaration de la variable dans l'Activité de trop
OriginalL'auteur rekaszeru
Assurez-vous que vous utilisez le contexte de l'Activité de la classe.Si vous utilisez ce toast dans une Activité d'écriture, Classname.cela à la place du contexte
OriginalL'auteur Jaydeep Khamar
Depuis le contexte n'est pas disponible,vous pouvez le passer dans le constructeur
OriginalL'auteur vishesh