网友通过本文主要向大家介绍了android listfragment,listfragment,listfragment的使用,listfragment详解,android fragment等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
理解android中ListFragment和Loader,androidlistfragment
一直以来不知Android中Loader怎么用,今天晚上特意花了时间来研究,算是基本上搞明白了,现在把相关的注释和代码发出来,以便笔记和给网友一个参考,错误之处还望大家给我留言,共同进步,这个例子采用的是android事例代码,在其中比较难理解的地方,给出注释,代码如下:
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//这是使用的android-support-v4.jar兼容包,如果网友使用的android4.0以上的版本
//可不使用,改成相应的方法就行
FragmentManager fm = getSupportFragmentManager();
if (fm.findFragmentById(android.R.id.content) == null) {
CursorLoaderListFragment list = new CursorLoaderListFragment();
fm.beginTransaction().add(android.R.id.content, list).commit();
}
}
public static class CursorLoaderListFragment extends ListFragment
implements OnQueryTextListener,OnCloseListener,
LoaderCallbacks<Cursor>{
SimpleCursorAdapter mAdapter;
SearchView mSearchView;
String mCurFilter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
//设置没有数据显示的默认文本
setEmptyText("No phone numbers");
//设置可由fragment创建的菜单
setHasOptionsMenu(true);
//设置适配器
mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_2, null,
new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
new int[] { android.R.id.text1, android.R.id.text2 }, 0);
setListAdapter(mAdapter);
//设置不显示ListView,等待加载完成以后显示
setListShown(false);
//初始化加载器
getLoaderManager().initLoader(0, null, this);
}
public static class MySearchView extends SearchView {
public MySearchView(Context context) {
super(context);
}
//正常的SearchView不会清楚搜索文本当SearchView关闭是,所以我们要重写
@Override
public void onActionViewCollapsed() {
//一当关闭就设置查询文本为空
setQuery("", false);
super.onActionViewCollapsed();
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Auto-generated method stub
//将搜索框加入ActionBar
MenuItem item = menu.add("Search");
//设置SearchView的图标
item.setIcon(android.R.drawable.ic_menu_search);
//设置ActionItem的显示方式
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
//使用自定义的SearchView以便更好的控制
mSearchView = new MySearchView(getActivity());
//设置文本

