我有一个简单的列表视图,它从一个非常庞大的JSON加载数据。
目前我已经像下面的示例那样完成了 - 所以我从JSON中提取所有数据。这只是一个例子,我有更多的数据要分配给actorList:
protected Boolean doInBackground(String... args) {
HttpHandler sh = new HttpHandler();
String url = "androidnews.json";
String jsonStr = sh.makeServiceCall(url);
if (jsonStr != null) {
try {JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray actors = jsonObj.getJSONArray("result");
for (int i = 0; i < actors.length(); i++) {
JSONObject c = actors.getJSONObject(i);
Actors actor = new Actors();
actor.setNazov(c.getString("name"));
actor.setPerex(c.getString("desc"));
actor.setPlace(c.getString("place"));
actor.setGps1(c.getString("gps1"));
actor.setGps2(c.getString("gps2"));
actor.setContact(c.getString("contact"));
actor.setinfo(c.getString("info"));
//and much more data from JSON
actorsList.add(actor);
}
但是,它工作正常,但我认为它无缘无故地加载所有数据。
因为在listview中我只使用标题和描述,所有其他数据只会传递给每个项目的onclick活动。
所以我以为我只会将项目的名称传递给onclick活动,而在其他活动中我将调用一个PHP文件,根据此名称作为参数将生成包含所有其他数据的JSON,这只会用于其他活动。
我这样做的方式更好吗?
当我只使用其中一些数据时,我真的不认为加载所有不必要的数据是有用的。
所以 - 实际上会有2个jsons,一个用于listview,一个用于详细信息,但第二个只在用户点击listview中的某个项目时被调用,所以不是每次都使用listview。