是的,您可以在加載時添加一個顯示視圖,例如顯示ProgressBar。
首先,你需要擴展自定義SimpleCursorAdapter與LoaderManager
public class CustomSimpleCursorAdapter extends SimpleCursorAdapter implements LoaderManager.LoaderCallbacks<Cursor>
1.增加全球視野
View startview;
2.Inside的構造打造進度條,並設置LoaderManager的回調
//Build the progressBar
ProgressBar progressBar = new ProgressBar(this.mContext);
progressBar.setLayoutParams(new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
progressBar.setIndeterminate(true);
//Set startview for future call and add to root view
startview = progressBar;
root.addView(startview);
//Set Interface the LoaderManager will call to report
context.getLoaderManager().initLoader(0,null,this);
3.重寫onLoadFinished以在完成後刪除進度欄視圖。
@Override public void onLoadFinished(Loader<Cursor> loader,Cursor data) {
if (startview!=null) {
if (startview.getParent()!=null) {
((ViewGroup)startview.getParent()).removeView(startview);
}
}
}
4.設置使用自定義光標適配器
全球
protected CustomSimpleCursorAdapter mAdapter;
覆蓋的onCreate爲集使用自定義適配器
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAdapter = new CustomSimpleCursorAdapter(context, layout, c, from,
to, flags);
listview.setAdapter(mAdapter);
...
}
這基本上就是'ListFragment'在默認情況下已經做了什麼,如果你沒有使用自定義的'View',並且你沒有設置'Adapter'直到你有數據。 –