天天看点

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

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,可是依然无法更新,请问这是怎么回事?

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());

}

}

});

}