如何让ListView每隔5秒刷新一次,数据来自服务器

2022-07-04 00:00:00 refresh listview android java

我有ListView,其中有数据。数据来自服务器,我希望ListView每隔5秒更新一次。如何做到这一点?我对Android开发还是个新手。请帮帮我。以下是我的代码...

    protected void showList() {
    try {
        JSONObject jsonObj = new JSONObject(myJSON);
        peoples = jsonObj.getJSONArray(TAG_RESULTS);

        for (int i = 0; i < peoples.length(); i++) {
            JSONObject c = peoples.getJSONObject(i);
            String data = c.getString(TAG_DATA);
            final String dataaaa = rcdata.getText().toString().trim();
            HashMap<String, String> user_data = new HashMap<String, String>();
            user_data.put(TAG_DATA, data);
            personList.add(user_data);
        }
        ListAdapter adapter = new SimpleAdapter(
                DataSendActivity.this, personList, R.layout.layout_chat,
                new String[]{TAG_DATA},
                new int[]{R.id.data}
        );

        list.setAdapter(adapter);

    } catch (JSONException e) {
        e.printStackTrace();
    }
}

解决方案

使用Handler及其postDelayed方法使列表的适配器失效,如下所示:

final Handler handler = new Handler();
handler.postDelayed( new Runnable() {

    @Override
    public void run() {
        adapter.notifyDataSetChanged();
        handler.postDelayed( this, 5000 );
    }
}, 5000 );

您只能更新主(UI)线程中的UI。

相关文章