【发布时间】: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