and roidは天気予報を取得します.

3426 ワード

「第一行コード」では天気の取り方はもうだめです.天気はいつも更新しません.長い間やりましたが、やっとできました.
一.データソース
     http://wthrcdn.etouch.cn/weather_ミニ?シティ=北京   都市名を通じて天気データを獲得しました.   http://wthrcdn.etouch.cn/weather_ミニ?citykey=10101100   都市IDを通じて天気データを獲得しました.
 JSONを取得したデータは以下の通りです.
「desc」:「OK」,「status」:1000,「data」:「{wendu]」:「「{19]」「ガンマオ」:「昼夜の温度差が大きいので、風邪をひきやすいので、服を適切に増減してください.体質の弱い方は保護に注意してください.」、「forecast」:「{fengxing]:「風向きの持続がない」、「fengli」:「高風」:「高風」:14級」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」:「高風」「高風」:「高風」:「高風」:「高風g」:「北風」、「fengli」:「5-6級」、「high」:「高温26℃」、「type」:「曇り」、「low」:「低温12℃」、「date」:「15日水曜日」、「fengxiang」:「北風」、「fengli」:「4-5級」、「高揚」:「高温20℃」、「type」:「曇りがち」、「low」:「気温風向き:「7日間気温」、「気温」、「気温」、「気温」、18日、18日、「気温」、「気温」、「気温」、18日、「気温」、18日、「気温」、「気温」、「気温」、「気温」、「気温、「気温」、「気温」、「気温」、「気温、「気温」、「気温」、「気温」、「気温」、「pe」:「晴」、「low」:「低温10℃」、「date」:「17日星期五」}、{fengxiang"風の持続的な方向"は、"fengli":"微風クラス","ハイ":"高温20℃","ティ":"陰"",""""""""""""""""""""""""""""""""""""""":"""""""""":"北風","""":""""""":""""":""""""":""":""""""""":""""""""":""""""""""""""""":"""""""""""""""""""":""""""""""""」北京「}
そうすれば、次は比較的簡単です.jsonのデータを解析して自分の欲しいデータを取得すればいいですが、httpclientやvollyで取得したのは文字化けで、utf-8を設定しても無駄です.その後は文字化けの問題を解決します.
二.文字化けの解決
    ここで使っているのはVollyです.郭大神のブログの住所を添付します.http://blog.csdn.net/guolin_ブログ/アート/detail/17482165
    文字化けの解決には、ParseNetwork Resonseの書き換え方法が必要です.具体的には以下の通りです.
RequestQueue requestQueue=Volley.newRequestQueue(getActivity());
JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(url, null, new Response.Listener() {


@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
Log.e("dd", response.toString());

}
}, new ErrorListener() {


@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub


}
})
{
protected Response  parseNetworkResponse(NetworkResponse response)
{
JSONObject jsonObject;
try {
jsonObject = new JSONObject(new String(response.data,"UTF-8"));
return Response.success(jsonObject, HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return Response.error(new ParseError(e));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return Response.error(new ParseError(e));
}



}
};


requestQueue.add(jsonObjectRequest);
三番目です.仕上げに図面を添付します.
android 获取天气预报_第1张图片
PS:使ったらこんな感じです.あなたが使った後もこのままです.特技はありません.: