天天看點

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

}

}

});

}