【问题标题】:getting data using volley from JSON to listview with custom arrayadapter使用 volley 从 JSON 获取数据到带有自定义 arrayadapter 的列表视图
【发布时间】:2013-10-14 17:38:45
【问题描述】:

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

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

对不起我的英语不好:)

@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);
}

【问题讨论】:

  • 你好,android.R.layout.simple_list_item_1 是android系统默认的,里面只能有一个textview。用你自己的布局替换它,可以有多个textview并膨胀它
  • 感谢您的回答,我多次尝试这样做,我为行制作了自己的布局,但我不知道在哪里以及如何获取数据并将文本(和或图像 src)设置为我的布局项目
  • 创建一个扩展 ArrayAdapter 的类并覆盖 getView 方法来扩充您的自定义行

标签: android json listview android-volley


【解决方案1】:

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

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

它甚至实现了 View Holder 模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    相关资源
    最近更新 更多