解析されたJsonデータをListviewに保存しようとしましたが、機能していません。
サーバーからいくつかのデータ(テーブルの形式)を取得し、それをJsonオブジェクトに解析しました。コード全体がうまく機能しました。Androidアクティビティで「トースト」を使用すると、取得したデータが表示されます。この解析されたデータをリストビューに保存するのを手伝ってください。
これが私のコードです
public void clickbutton(View v) {
try {
// Log.i(getClass().getSimpleName(), "send task - start");
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
//
HttpParams p = new BasicHttpParams();
// p.setParameter("name", pvo.getName());
p.setParameter("user", "1");
// Instantiate an HttpClient
HttpClient httpclient = new DefaultHttpClient(p);
String url = "http://bhavit.xtreemhost.com/webservice1.php?user=1&format=json";
HttpPost httppost = new HttpPost(url);
// Instantiate a GET HTTP method
try {
Log.i(getClass().getSimpleName(), "send task - start");
//
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
7);
nameValuePairs.add(new BasicNameValuePair("details", "1"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httppost,
responseHandler);
// Parse
JSONObject json = new JSONObject(responseBody);
JSONArray jArray = json.getJSONArray("posts");
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < jArray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = jArray.getJSONObject(i);
String s = e.getString("post");
JSONObject jObject = new JSONObject(s);
map.put("time", jObject.getString("time"));
map.put("latitude", jObject.getString("latitude"));
map.put("longitude", jObject.getString("longitude"));
mylist.add(map);
}
Toast.makeText(this, responseBody, Toast.LENGTH_LONG).show();
**String[] columns = new String[] { "Time", "Latitude", "Longitude" };
int[] renderTo = new int[] { R.id.time, R.id.latitude, R.id.longitude };
ListAdapter listAdapter = new SimpleAdapter(this, mylist, R.layout.geo_ponts_list, columns, renderTo);
setListAdapter(listAdapter);**
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Log.i(getClass().getSimpleName(), "send task - end");
} catch (Throwable t) {
Toast.makeText(this, "Request failed: " + t.toString(),
Toast.LENGTH_LONG).show();
}
}
private void setListAdapter(ListAdapter listAdapter) {
// TODO Auto-generated method stub
}
public class Data {
// private List<User> users;
public List<details> users;
// +getters/setters
}
static class details {
String latitude;
String longitude;
String time;
public String Longitude() {
return longitude;
}
public String Latitude() {
return latitude;
}
public String Time() {
return time;
}
public void setUserName(String value) {
longitude = value;
}
public void setidusers(String value) {
latitude = value;
}
エラーはありませんが、アクティビティにはリストビューに値が表示されませんが、Toastを使用して値を確認できます。 トーストを使用したアクティビティの出力
これが私のgeo_ponts_list.xmlファイルです
<TextView android:id="@+id/time"
android:textSize="16sp"
android:textStyle="bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/latitude"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/longitude"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>