HttpConnect 时如何刷新视图?
How I can refresh the view when HttpConnect?
从网络接收信息并将该数据附加到视图。
使用离子库,
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);
}
}
}
});
}
因此,我在 onCreate()
调用 getListInfo()
方法。
我移动那个'A' activity,我根本看不到数据
在 recyclerview 或 listview 中,使用 notifyDataSetChanged()
但我看不到列表。
但是,当我返回并再次移动 'A' activity 时,我可以看到数据和视图。
所以我想我得到了信息,但它没有在那个视图中更新。
现在,当我从服务器获取信息时,如何查看视图?
您可以使用 SwipeRefreshLayout 在滑动时刷新数据:
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();
}
从网络接收信息并将该数据附加到视图。
使用离子库,
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);
}
}
}
});
}
因此,我在 onCreate()
调用 getListInfo()
方法。
我移动那个'A' activity,我根本看不到数据
在 recyclerview 或 listview 中,使用 notifyDataSetChanged()
但我看不到列表。
但是,当我返回并再次移动 'A' activity 时,我可以看到数据和视图。
所以我想我得到了信息,但它没有在那个视图中更新。
现在,当我从服务器获取信息时,如何查看视图?
您可以使用 SwipeRefreshLayout 在滑动时刷新数据: 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();
}