从网络接收信息并将该数据附加到视图。
使用离子库
private void getListInfo() {
Ion.with(getApplicationContext())
.load("POST", "URL..")
.setBodyParameter("Parameters", "Parameters")
.asString()
.withResponse()
.setCallback(new FutureCallback<Response<String>>() {
@Override
public void onCompleted(Exception e, Response<String> result) {
if (e != null) {
e.printStackTrace();
} else {
int resultCode = result.getHeaders().code();
String resultInfo = result.getResult();
if (resultCode == 200) {
Log.d("EntrantInfo", resultInfo);
Gson gson = new Gson();
Type type = new TypeToken<List<Data>>() {
}.getType();
listItems = gson.fromJson(resultInfo, type);
Adapter.setItems(listItems);
Adapter.notifyDataSetChanged();
textview.setText(data);
}
}
}
});
}
因此,我在getListInfo()
处调用onCreate()
方法。
我移动了“ A”活动,我完全看不到数据。
在回收站视图或列表视图中,使用notifyDataSetChanged()
,但我看不到列表。
但是,当我再次移回并移动“ A”活动时,我可以看到数据并查看。
所以我认为我已经掌握了信息,但是在该视图中并没有更新。
现在,当我从服务器获取信息时如何查看视图?
答案 0 :(得分:1)
您可以使用SwipeRefreshLayout在swipe上刷新数据: SwipeRefreshLayout
将数据加载功能添加到SwipeRefreshLayout.OnRefreshListener
或
您可以设置TimerTask来刷新数据
TimerTask timerTask;
Timer timer;
timerTask = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//load your data
getListInfo();
}
});
}
};
timer = new Timer();
timer.scheduleAtFixedRate(timerTask, 0, 200);
并确保取消计时器onPause()
@Override
protected void onPause() {
if(timer != null){
timer.cancel();
}
super.onPause();
}