Android-übergeben von Variablen zwischen den Aktivitäten
Möchte ich weitergeben eine oder mehrere Variablen zwischen den Aktivitäten in android. Eine Lösung ist die Verwendung von globalen Variablen, und es ist hier erklärt:
Android-Globale variable
das wiederhole ich hier:
Können Sie erweitern die Basis-android.app.Die Application-Klasse und hinzufügen von member-Variablen, etwa so:
public class MyApplication extends Application {
private String someVariable;
public String getSomeVariable() {
return someVariable;
}
public void setSomeVariable(String someVariable) {
this.someVariable = someVariable;
}
}
Dann in Ihre Aktivitäten, die Sie bekommen können, und setzen Sie die variable wie folgt:
//set
((MyApplication) this.getApplication()).setSomeVariable("foo");
//get
String s = ((MyApplication) this.getApplication()).getSomeVariable();
Ich dies nutzen wollen, und legen Sie eine Globale variable in einer meiner Tätigkeiten, wenn ein item in einem ListView-Steuerelement gedrückt wird. Also ich habe diesen code:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
.
.
.
((MyApplication) this.getApplication()).setSomeVariable("foo");
}
});
Jedoch bekomme ich eine Fehlermeldung die sagt "Die Methode getApplication() ist nicht definiert für den Typ new AdapterView.OnItemClickListener(){}".
Ich würde gerne wissen, was ist der Grund, warum ich diesen Fehler bekommen und wie man es beheben, oder eine bessere Möglichkeit der übergabe einer variable von einer Aktivität zur anderen.
Dank,
TJ
InformationsquelleAutor TJ1 | 2011-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Innerhalb einer Anonymen Klasse, die Sie kann nicht sagen, dieser. u müssen lediglich die Klasse um den inneren Klasse.
wie "MyApplication".diese.zu bekommen..
wenn Sie verwenden:
". " innerhalb einer annoymous innere Klasse, die sich auf die innere Klasse selbst.
Das ist völlig in Ordnung, mit dem code, den ich schrieb, die Methode "getApplication()" bekommen Sie Ihre gewünschte Klasse, wenn Sie innerhalb der Klasse MyOtherApplication schreiben Sie MyOtherApplication.dies..., weil Sie den Aufruf innerhalb eines anonym-Klasse und dem Schlüsselwort "this" bezieht sich auf die innere Klasse.
InformationsquelleAutor Michele
Einen bestimmten Grund, Sie sind nicht mit Absicht? http://developer.android.com/guide/topics/fundamentals/activities.html#StartingAnActivity
InformationsquelleAutor source.rar
Haben Sie die Verwendung von MyClass.diese.getApplication (), wenn Sie haben, definieren Sie die anonyme OnItemClickListener in eine member-Funktion von MyClass. OnItemClickListener nicht wissen über die Anwendung.
InformationsquelleAutor P.Melch
Ich glaube nicht, dass Sie brauchen, um Sie zu wirken... Bewerbung ist schon da.
funktionieren sollte wie jede andere Klasse.
InformationsquelleAutor rf43