- 在您的列表小部件的布局文件中,添加一个TextView来实现刷新,如下所示:
- 在您的ListActivity或ListFragment中,使用Handler.postDelayed()方法来定时刷新列表,并显示刷新文本视图,如下所示:
private Handler mHandler = new Handler();
private TextView mRefreshText;
private boolean mIsVisibleToUser = false;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mRefreshText = (TextView)getView().findViewById(R.id.refresh_text);
mHandler.postDelayed(mRefreshRunnable, 1000);
}
@Override
public void onResume() {
super.onResume();
mIsVisibleToUser = true;
}
@Override
public void onPause() {
super.onPause();
mIsVisibleToUser = false;
}
private Runnable mRefreshRunnable = new Runnable() {
@Override
public void run() {
if (mIsVisibleToUser) {
mAdapter.notifyDataSetChanged();
mRefreshText.setVisibility(View.VISIBLE);
mHandler.postDelayed(this, 1000);
} else {
mHandler.removeCallbacks(this);
}
}
};
- 在您的Activity或Fragment中,重写onWindowFocusChanged()方法,以在小部件从后台返回时隐藏刷新文本视图,如下所示:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
mRefreshText.setVisibility(View.GONE);
}
}