使用自定义arrayadapter从JSON到listview获取数据

时间:2013-10-14 17:38:46

标签: android json listview android-volley

这是我的代码,它运行良好。 我想从我的JSON数据中获取多个值(包括图像地址)并在我的listview的每一行中显示它们但我不能这样做我只能获得一个数据(标题)并将其放在简单列表中,我怎么能用我自己的单行布局替换 android.R.layout.simple_list_item_1 ?我是Android的新手,我无法理解列表视图和行的循环。

我想做的是从JSON获取一些数据并在我的自定义行布局中显示它们,例如谷歌加列表视图,图像,标题和描述

抱歉我的英语不好:)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    context = this;
    setContentView(R.layout.activity_read_restaurants);
    restaurantList = (ListView) findViewById(R.id.restaurantList);


    final ArrayAdapter<String> restaurantAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,restaurantArray);
    restaurantList.setAdapter(restaurantAdapter);

    RequestQueue rq = Volley.newRequestQueue(this);
    JsonObjectRequest jsonrequest = new JsonObjectRequest(Request.Method.GET,feedURL,null,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray restaurants = response.getJSONArray("posts");
                        for (int i =0; i<restaurants.length(); i++){
                            restaurantArray.add(restaurants.getJSONObject(i).getString("title"));
                        }
                    } catch (JSONException e) {

                        e.printStackTrace();
                    }
                    restaurantAdapter.notifyDataSetChanged();
                }

            },new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(context, error.toString(), Toast.LENGTH_LONG).show();

                }
            });


    rq.add(jsonrequest);
}

1 个答案:

答案 0 :(得分:1)

查看本教程以创建arrayadapter并在程序中使用它

http://theopentutorials.com/tutorials/android/listview/android-custom-listview-with-image-and-text-using-arrayadapter/

它甚至实现了View Holder模式。