【发布时间】:2017-06-30 12:29:48
【问题描述】:
我正在从 php 服务器检索对象的 JSON 数组并将其显示在 ListView 上,我成功地能够检索数据并将其存储到 Arraylist 但是当我尝试在 ListView 上显示它时,只有最后一个项目是多次显示。 我正在使用 Volley 回调接口来存储数据, 并使用 ListFragment。这是我的代码:
Server.getDataFromServer(getActivity(), "product.php", new Server.VolleyCallback() {
@Override
public void onSuccessResponse(JSONArray jsonArray) {
try {
for(int i = 0; i<jsonArray.length(); i++){
mProduct.setId(jsonArray.getJSONObject(i).getInt("mId"));
mProduct.setName(jsonArray.getJSONObject(i).getString("mName"));
mProduct.setPrice(jsonArray.getJSONObject(i).getDouble("mPrice"));
mProducts.add(mProduct);
System.out.println(mProducts.get(i));
}
} catch (JSONException e) {
e.printStackTrace();
}
ArrayAdapter<Product> adapter= new ArrayAdapter<>(getActivity(), R.layout.home_list_row, mProducts);
setListAdapter(adapter);
}
}
);
这里是 onCreateView
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
listView = (ListView)rootView.findViewById(android.R.id.list);
return rootView;
}
【问题讨论】:
标签: java android listview android-volley