Android-避免在不必要时加载大量json数据
我有一个简单的listview,它从一个非常巨大的JSON加载数据 目前,我已经完成了下面的示例——因此我从JSON中提取所有数据。这只是一个例子,我有更多的数据要分配给actorList:Android-避免在不必要时加载大量json数据,android,json,listview,Android,Json,Listview,我有一个简单的listview,它从一个非常巨大的JSON加载数据 目前,我已经完成了下面的示例——因此我从JSON中提取所有数据。这只是一个例子,我有更多的数据要分配给actorList: protected Boolean doInBackground(String... args) { HttpHandler sh = new HttpHandler(); String url = "androidnews.json"; String js
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);
}
受保护的布尔doInBackground(字符串…args){
HttpHandler sh=新的HttpHandler();
字符串url=“androidnews.json”;
字符串jsonStr=sh.makeServiceCall(url);
if(jsonStr!=null){
try{JSONObject JSONObject=newjsonobject(jsonStr);
JSONArray actors=jsonObj.getJSONArray(“结果”);
对于(int i=0;i
然而,它工作得很好,但我认为它毫无理由地加载了所有数据
因为在listview中,我将只使用标题和描述,所有其他数据将只传递给每个项目的onclick活动
因此,我认为我将只向onclick活动传递项的名称,在另一个活动中,我将调用一个PHP文件,该文件将根据此名称作为参数生成包含所有其他数据的JSON,这些数据将仅在另一个活动中使用
我这样做是不是更好
当我只使用其中的一些数据时,我真的不认为加载所有不必要的数据是有用的
所以-实际上将有2个JSON,一个较小的用于listview,另一个用于详细信息,但第二个JSON将仅在用户单击listview中的某个项目时调用,所以不是每次都使用listview。您可以在服务器上操作吗?是的,PHP将在我的服务器上,因此我可以在那里处理传递的参数并生成JSON。是的,最好的方法是只发送第一次调用所需的数据,然后当用户单击某个特定项目时,您可以向服务器请求更新的数据