Ich habe statische Klasse, die Daten vom Server lädt und packt es in Objekte, die später in Array geht und an normale Klasse übergeben werden. Ich möchte den Parameter "distance to user" hinzufügen und es erfordert Benutzer Ort zu berechnen. Alle Elemente sind in verschiedenen Java-Klassen. Methode aus der statischen Klasse, die die Objekte von der Serverantwort zum Objekt sortiert.Wie Daten in statischer Klasse/Methode von nicht statischen übergeben?
public static List<Quake> extractEarthquakes(String earthquakeJSON) {
if (TextUtils.isEmpty(earthquakeJSON)) {
return null;
}
List<Quake> earthquakes = new ArrayList<>();
JSONObject jsonObj = new JSONObject(earthquakeJSON);
JSONArray features = jsonObj.getJSONArray("features");
for (int i = 0; i < features.length(); i++) {
double distance = 0;
JSONObject currentEarthquake = features.getJSONObject(i);
JSONObject properties = currentEarthquake.getJSONObject("properties");
double mag = properties.getDouble("mag");
String location = properties.getString("place");
String date = properties.getString("time");
String url = properties.getString("url");
int felt = 0;
if(!properties.isNull("felt")) {
felt = properties.getInt("felt");
}
JSONObject geometry = currentEarthquake.getJSONObject("geometry");
JSONArray coordinates = geometry.getJSONArray("coordinates");
double longitude = coordinates.getDouble(0);
double latitude = coordinates.getDouble(1);
int depth = coordinates.getInt(2);
Quake earthquake = new Quake(mag, location, date, url, felt, longitude, latitude, depth, distance);
earthquakes.add(earthquake);
}
}
return earthquakes;
}r
Objekt wird als einfacher Datenhalter (ein Element nur zum Beispiel) erstellt
public class Quake {
private double kmag;
//and others
public Quake(double mag, String location, String date, String url, int felt, double longitude, double latitude, int depth, double distance){
kmag = mag;
//and others
public double getMag() {
return kmag;
}
In MainActivity gibt es LoaderManager die Loader-Klasse beginnt zu arbeiten. Auch gibt es LocationManager, der Benutzer Längengrad/Breitengrad erhält. Bisher hatte ich nur wenige Ideen, wie das geht, aber keiner von ihnen hat funktioniert.
- auf dem eingestellten Wert für jedes Objekt Element in Array-Liste
- Fundort innerhalb statischer Klasse
- aus irgendwie zwei Doppeln Variablen in statischen passiert nicht statisch
Soweit ich letzte kennen ist unmöglich. Während ich in meinem Objekt keinen Wert ändern konnte, gibt es keine .setValue()
Methode, so dass ich höchstens einen neuen Wert für kmag (die Variablen, die für die Rückgabe verwendet werden) festlegen konnte.
Schließlich konnte ich meinen LocationManager nicht in die statische Klasse übertragen, da er die Benutzer um Erlaubnis fragen muss und im Beispiel, dass alle Methoden nicht statisch waren. Meine Frage ist also: Gibt es etwas, das ich vermisse? Vielleicht gibt es einen anderen, einfacheren Weg das zu tun, oder ich habe gerade in einem dieser 3 versagt?
Was ist eine "statische Klasse"? Bitte beachten Sie, dass Sie zutreffenden und echten Code zeigen. –
Willkommen bei Stack Overflow! Bitte lesen Sie unsere [SO Fragen-Checkliste] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), um Ihnen zu helfen, eine gute Frage zu stellen und somit eine gute Antwort zu erhalten. –
Bearbeiten Sie Ihre Frage, um es klarzustellen, fügen Sie etwas Code hinzu. Es ist schwer zu verstehen! – Xenolion