Android 台灣中文網
標題:
關於Eclipse 抓取json資料
[打印本頁]
作者:
hugo3334059
時間:
2013-8-12 02:27
標題:
關於Eclipse 抓取json資料
我參照此
Android解析json資料範例
教學想嘗試抓取JSON資料來進行顯示
但每次按抓取時都會出現錯誤 讓模擬器顯示Unfortunately, AAA has stopped就關閉了
package com.example.aaa;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.example.aaa.MainActivity;
import com.example.aaa.R;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
/*import android.widget.AdapterView.OnItemClickListener;*/
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
/*import android.widget.*;*/
/*Toast AdapterView*/
public class MainActivity extends Activity {
Button btnParse;
ListView listResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnParse = (Button)findViewById(R.id.btn_parse);
listResult=(ListView)findViewById(R.id.list_result);
btnParse.setOnClickListener(new OnClickListener()
{public void onClick(View v){
getJSONData();
String [] libStationId = parseJSONData(getJSONData());
ArrayAdapter<String> listAdapter = new ArrayAdapter<String>
(MainActivity.this
, android.R.layout.simple_expandable_list_item_1
, libStationId );
listResult.setAdapter(listAdapter);
}
});
}
//取得資料 陣列型態
private JSONArray getJSONData(){
String url = "http://data.ntpc.gov.tw/NTPC/od/data/api/TRB27/;jsessionid=51BC385898B4B1293A1D845041B2E2A8?$format=json";
HttpGet httpget = new HttpGet(url);
try{
HttpResponse httpresponse = getHttpClient().execute(httpget);
String result = EntityUtils.toString(httpresponse.getEntity());
Log.e("result",result);
JSONArray jsonarr = new JSONArray(result);
return jsonarr;
}catch(Exception e){e.printStackTrace();
return null;
}
}
//解析JSON資料後回傳String[] 型態
private String[] parseJSONData(JSONArray dataInput)
{
try {
String [] libStationId = new String[dataInput.length()];
String [] libEstimateTime = new String[dataInput.length()];
String [] libRouteID = new String[dataInput.length()];
for(int i = 0 ; i <5 ;i++)
{
JSONObject lib = dataInput.getJSONObject(i);
Log.e("StationId",lib.getString("StationId"));
Log.e("EstimateTime",lib.getString("EstimateTime"));
Log.e("RouteID",lib.getString("RouteID"));
libStationId[i]=lib.getString("StationId");
libEstimateTime[i] = lib.getString("EstimateTime");
libRouteID[i] = lib.getString("RouteID");
}
return libStationId;
}catch (JSONException e) {
e.printStackTrace();
return null;
}
}
//timeout
private DefaultHttpClient getHttpClient(){
HttpParams httpparams = new BasicHttpParams();
int timeoutConnection = 5000;
HttpConnectionParams.setConnectionTimeout(httpparams, timeoutConnection);
int timeoutSocket = 3000;
HttpConnectionParams.setSoTimeout(httpparams, timeoutSocket);
DefaultHttpClient dfaultHC = new DefaultHttpClient(httpparams);
return dfaultHC;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
複製代碼
作者:
ploglin
時間:
2013-8-12 10:45
建議你把原本的project都刪除,然後重新下載android adt試試看。
作者:
hugo3334059
時間:
2013-8-12 14:45
重新下載之後再貼上自己打的程式碼嗎?
作者:
xjxuvup
時間:
2013-8-12 15:20
去下載Android SDK
裡面就有附Eclipse,打開後,先把環境設定好。
大致上就這樣
developer.android.com/intl/zh-tw/sdk/index.html
複製代碼
作者:
hugo3334059
時間:
2013-8-12 15:24
我是用Android SDK附的Eclipse寫的
developer.android.com/intl/zh-tw/sdk/index.html ??
我還是個新手 qq
作者:
xjxuvup
時間:
2013-8-12 16:30
那應該是沒問題啊@@
我也是直接下載sdk,執行裡面的Eclipse來寫project。
應該貼上去,改一改把有錯誤的地方修一修就能跑了。
作者:
hugo3334059
時間:
2013-8-12 17:58
我顯示是沒有錯誤 但是跑就是有問題qq
作者:
M98530065
時間:
2013-8-14 11:27
1.log 上來吧
2.com.example.aaa.R; 請砍掉
作者:
hugo3334059
時間:
2013-8-14 22:20
M98530065 發表於 2013-8-14 11:27
登錄/註冊後可看大圖
1.log 上來吧
2.com.example.aaa.R; 請砍掉
LOG上來? 什麼意思啊?
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1