我认为这篇文章不是针对Android主题的StackOverflow,所以如果是,我很抱歉,但我已经搜索了很多。
我的问题
我一直在寻找一个无穷无尽的listview填充方法,比如Android Market和我found it, which is great。
问题是:我正在下载一个5 MB的JSON文件,该文件只包含我的ListView
我不想让用户等到下载JSON文件,所以我想显示第一个条目,所以我必须下载我的JSON文件的片段或部分... 如何我能做到吗?
这是我下载文件的方式: public class lista扩展了AsyncTask {
@Override
protected void onPreExecute() {
pd = new ProgressDialog(inscritos.this);
pd.setTitle("Procesando...");
pd.setMessage("Espera hasta que se termine.");
pd.setCancelable(false);
pd.setIndeterminate(true);
pd.show();
}
@SuppressWarnings("unchecked")
@Override
protected Void doInBackground(final String... params) {
InputStream source = f.retrieveStream(params[0]);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
Respuesta response = gson.fromJson(reader, Respuesta.class);
Socio[] socios = response.getSocio();
lista = new ArrayList<Socio>();
for (Socio o : socios) {
lista.add(o);
}
return null;
}
@Override
protected void onPostExecute(final Void result) {
pd.dismiss();
}
}
这就是我* 检索我的 (f.retrieveStream(params[0]))
) *
@SuppressLint("NewApi")
public static InputStream retrieveStream(String url) {
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
DefaultHttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(url);
try {
HttpResponse getResponse = client.execute(getRequest);
final int statusCode = getResponse.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
Log.w("ERROR", "Error " + statusCode + " for URL " + url);
return null;
}
HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();
} catch (IOException e) {
getRequest.abort();
Log.w("ERROR", "Error for URL " + url, e);
} catch (Exception e) {
getRequest.abort();
Log.w("ERROR", "Error for URL " + url, e);
}
return null;}
谢谢
答案 0 :(得分:0)
那么它应该在服务器端(例如:你的php脚本)实现,而不是在客户端实现。编写您的php脚本,使其根据客户端请求的偏移和限制给出响应。假设您想要从index 0
开始的10个条目,那么offset
应该是0
而limit
应该是10
。基于offset
和limit
,您的json响应应该只包含这么多数据。
如果您在服务器端使用php
,这是一个关于通过php使用分页的很好的教程