android fragment listview,如何在fragment中更新Listview中的数据?

在Android中,尝试在Fragment中动态更新ListView数据时遇到问题。已定义`showList()`方法清除并填充ArrayList,然后使用SimpleAdapter更新ListView。在`updateList()`方法中通过OkHttp获取新数据并调用`showList()`,但ListView未成功更新。问题可能在于数据获取与UI更新的同步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.RT,我想实现通过点击fragment界面上面的按钮动态更新fragment界面上面的listview数据,我把更新Listview的方法写到一个showlist()的方法里面

/**

* 展示列表

*/

private void showList() {

mArrayList.clear();

for (int i = 2; i < paraList.size(); i++) {

Para para = paraList.get(i);

HashMap map = new HashMap();

map.put("one_show_item_title", para.getName());

map.put("one_show_item_text", para.getValue());

mArrayList.add(map);

}

simpleAdapter = new SimpleAdapter(getContext(),

mArrayList,

R.layout.item_listview_fg_one,

new String[]{"one_show_item_title", "one_show_item_text"}, //动态数组里与ListItem对应的子项

new int[]{R.id.one_show_item_title, R.id.one_show_item_text} //

);

for (HashMap map : mArrayList) {

Log.d(TAG, "run: " + map.get("one_show_item_title"));

Log.d(TAG, "run: " + map.get("one_show_item_text"));

}

getActivity().runOnUiThread(new Runnable() {

@Override

public void run() {

lv_fg_one_show.setAdapter(simpleAdapter);

}

});

}

然后在updatalist中更新数组中的数据,更新完了之后再调用showlist方法来更新listview,可是依然无法更新,请问这是怎么回事?

/**

* 获取最新url里的数据并且显示

*

* @param url

*/

private void updateList(String url) {

HttpUtils.sendOkHttpRequest(url, new okhttp3.Callback() {

@Override

public void onFailure(Call call, IOException e) {

//网络错误

android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(getContext());

builder.setMessage("请确认已连接上服务器!")

.setPositiveButton("确定", null);

builder.show();

}

@Override

public void onResponse(Call call, Response response) throws IOException {

//返回正确数据,json串存于response.body().string()

String data = response.body().string();

Gson gson = new Gson();

paraList.clear();

paraList = gson.fromJson(data, new TypeToken>() {

}.getType());

for (Para para : paraList) {

Log.d(TAG, "onResponse: ---------" + para.getString());

}

}

});

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值