Ich entwickle eine Android-Anwendung basierend auf Web-Services. Wie kann ich Abfrage ausführen (Server mit PHP und MySQL) basierend auf dem Element geklickt und erhalten Sie das Ergebnis aus dem Internet. Ich möchte auch einige Werte als Liste anzeigen (Listenlayout). Gibt es das überhaupt, um das zu erreichen?So erhalten Sie Werte für eine Android-Anwendung
Antwort
Was Sie tun möchten, ist die Entwicklung einer Rest API, die Daten für Ihre Android-App bietet. Z.B. Ihre Website enthält einige Inhalte, die Sie in Ihrer App verwenden möchten. Anschließend können Sie ein PHP-Skript schreiben, das diese Daten in einem bestimmten Format zurückgibt.
z. mysite.net/rest/fetchAllLocations.php?maybe_some_parameters
Dies würde Orte in z.B. json format, hier ist ein Beispiel, wie das aussieht:
[{"id": 1, "shop_lng": 8.5317153930664, "shop_lat": 52.024803161621, "shop_zipcode": 33602, "shop_city": "Bielefeld", "shop_street": "Arndtstra \ u00dfe", "shop_snumber": 3 "shop_name": "M \ u00fcller", "shop_desc": "Kaufhaus"}]
Hier ist ein Beispiel für einen Rest api Anfrage:
http://shoqproject.supervisionbielefeld.de/public/gateway/gateway/get-shops-by-city/city/Bielefeld
Also, wenn Sie Ihre Ruhe api einrichten Sie mit dem Empfang, dass die Daten mit Ihrem android-Smartphone umgehen können. Ich benutze eine statische Methode, um diese Daten zu erhalten:
public class JsonGrabber{
public static JSONArray receiveData(){
String url = "your url";
String result = "";
DefaultHttpClient client = new DefaultHttpClient();
HttpGet method = new HttpGet(url);
HttpResponse res = null;
try {
res = client.execute(method);
} catch (ClientProtocolException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
try{
InputStream is = res.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
JSONArray jArray = null;
try{
jArray = new JSONArray(result);
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
return jArray;
}
}
Nun das ist alles, wenn Sie Ihre Daten im JSON-Format haben Sie es nur analysieren müssen:
JSONArray test = (JSONArray) JsonGrabber.receiveData ()
Die Webanforderung sollte in einem anderen Thread ausgeführt werden, da es ein zeitaufwändiger Prozess sein kann. Sie müssen sich also mit AsyncTask beschäftigen. Hier sind einige Ressourcen:
Painless Threading Multithreading for performance Hello Android Tutorial
- 1. PHP So erhalten Sie Werte von Daten
- 2. So erhalten Sie Abfrage-Querystring-Werte?
- 3. Wie erhalten Sie alternative Werte für ROW_NUMBER()?
- 4. So erhalten Sie eine Umleitungsantwort
- 5. So erhalten Sie eine Direktive:
- 6. So erhalten Sie die Werte für eine Reihe von Kontrollkästchen in Laravel 4-Controller (wenn aktiviert)
- 7. So ändern Sie Werte für Webparteigenschaften
- 8. So erhalten Sie die richtigen Werte von Polar Pulsmesser
- 9. So erhalten Sie eine Seitenquelle mit JavaScript
- 10. So erhalten Sie eine Bestätigung von Kafka
- 11. So erhalten Sie Attribute Werte bei Änderung der Dropdown-Auswahl
- 12. So erhalten Sie die BigQuery-Speichergröße für eine einzelne Tabelle
- 13. So erhalten Sie Skalarwert für eine Zelle mit bedingter Indizierung
- 14. So erhalten Sie eine Voreinstellung für die Anzeige benutzerdefinierter Elemente
- 15. So erhalten Sie eine Zusammenfassung für jede Spalte einer Liste
- 16. So erhalten Sie die richtige Inhaltslänge für eine POST-Anfrage
- 17. So erhalten Sie Artikeldetails aus Listview für eine andere Aktivität
- 18. So erhalten Sie eine Antwortzeichenfolge von NSURLSessionTask
- 19. So erhalten Sie Sitzungsdaten über eine Benutzerregistrierung
- 20. So erhalten Sie eindeutige Werte in der Liste
- 21. So erhalten Sie den Größenbereich für Schriftarten
- 22. So erhalten Sie den Streamschlüssel für twitch.tv
- 23. So erhalten Sie verschiedene Werte in der gleichen Umgebungsvariablen
- 24. So erhalten Sie die Werte einer dynamischen Textbox
- 25. So erhalten Sie eine Zeichenfolge von dataPackageView.GetDataAsync()
- 26. So erhalten Sie eine Kartensteuerung oder Interaktion
- 27. So erhalten Sie eine genaue Ping-Messung
- 28. So erhalten Sie Elternkomponentenattribute
- 29. So erhalten Sie Testverlauf
- 30. So erhalten Sie Werte von 3 Modellen und bauen eine Struktur
Dank ArtWorkAD. Lass mich das versuchen. Wissen Sie, wie Sie XML mit SAX in Android analysieren können. Ich habe einen Link ausprobiert, konnte aber keine bessere Lösung finden. Ich möchte einige Kategoriennamen von einer XML-Datei erhalten und sie auf dem Android-Telefon auflisten. –
Nun könnte man das in einer anderen Frage fragen –