ウェブサービスに基づいてアンドロイドアプリケーションを開発しています。クリックした項目に基づいてクエリ(PHPとMySQLを使用したサーバ)を実行し、Webから結果を取得するにはどうすればよいですか?また、リスト(List Layout)としていくつかの値を表示したい。これを達成するためにとにかくありますか?アンドロイドアプリケーションの値を取得する方法
答えて
あなたのやりたいことは、あなたのアンドロイドアプリのデータを提供する残りのAPIを開発することです。例えば。あなたのウェブサイトはあなたのアプリで使用したいと思ういくつかのコンテンツを持っている、あなたは特定の形式でそのデータを返すだけのPHPスクリプトを書くことができます。
など。 mysite.net/rest/fetchAllLocations.php?maybe_some_parameters
これは、例えば、
[{"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も"}]
ここで残りのAPI要求の例である:
http://shoqproject.supervisionbielefeld.de/public/gateway/gateway/get-shops-by-city/city/Bielefeld
あなたのREST APIを設定しているとき、つまり、あなたのAndroidの携帯電話でそのデータを受信して対処することができます。私は、このデータを取得するには、静的メソッドを使用します。
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;
}
}
まあ、すべてのthatsの、あなたはJSON形式のデータを持っていたら、あなたはそれを解析する必要があります。
JSONArrayテスト=(JSONArray)JsonGrabber.receiveData( )
try {
for(int i=0;i<test.length();i++){
JSONObject json_data = test.getJSONObject(i);
int id = json_data.getInt("id");
}
}
Webリクエストは、時間がかかるプロセスである可能性があるため、別のスレッドで実行する必要があります。したがって、AsyncTaskを処理する必要があります。ここではいくつかのリソースは次のとおりです。
Painless Threading Multithreading for performance Hello Android Tutorial
- 1. アンドロイドアプリケーションのデバッグ中に逆アセンブルコードを取得する方法は?
- 2. アンドロイドアプリケーションへのTwitter認証名を取得する方法は?
- 3. データベースから値を取得してアンドロイドアプリケーションに表示する方法
- 4. ランチャーを取得するアンドロイドアプリケーションのアクティビティ名
- 5. MMS _id [アンドロイドアプリケーション]を取得する
- 6. アンドロイドアプリケーションが使用している現在のヒープサイズを取得する方法は?
- 7. 私のアンドロイドアプリケーションで毎日の日付変更情報を取得する方法
- 8. jstlの値を取得する方法
- 9. OneSelectMenuの値を取得する方法
- 10. トグルチェックボックスの値を取得する方法
- 11. セッションの値を取得する方法
- 12. 値のクッキーを取得する方法
- 13. SQLITE_MAX_COMPOUND_SELECTの値を取得する方法
- 14. constantexpressionの値を取得する方法
- 15. アンドロイドアプリケーション(Androidスタジオとグラデル)の手動テストからコードカバレッジを取得する方法
- 16. アンドロイドアプリケーションをデバッグする方法
- 17. スピナーに表示されるリストからアンドロイドアプリケーションのuid値を取得する方法は?
- 18. タグで値を取得する方法
- 19. ヘッダー値を取得する方法
- 20. 値を取得する方法?
- 21. 親値を取得する方法
- 22. jQueryメタデータ、値を取得する方法?
- 23. MVC ModelError値を取得する方法
- 24. 別のアンドロイドアプリケーションからアイコンを取得
- 25. 他のアンドロイドアプリケーションにアクセスする方法cordovaのlocalstorage値
- 26. 取得リクエストでカラーコード値を渡して取得する方法
- 27. 値の重複値の取得方法
- 28. jqueryテーブル内のテキストボックスの値の値を取得する方法
- 29. Xamarinフォームのラベルバインディング値の値を取得する方法
- 30. AngularJSオブジェクトから別の値で値を取得する方法
ありがとうArtWorkAD。私はこれを試してみましょう。あなたはアンドロイドでSAXを使ってXMLを解析する方法を知っていますか?私はいくつかのリンクを試したが、よりよい解決策を見つけることができなかった。私は、XMLファイルからいくつかのカテゴリ名を取得し、アンドロイド電話にそれを記載したいと思います。 –
あなたは別の質問でそれを聞くことができます –