ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用
该类有几个特点:
1、ListFragment 本身具只有一个ListView视图,返回的也是一个只有ListView的布局对象
2、ListFragment 不需要指定布局,本身固定,只有一个ListView视图
3、给ListFragment中的ListView加载数据或者绑定适配器都只能出现onCreateView(),因为onCreateView方法之后,ListView对象才创建,
4、给 ListView设置适配器 用setListAdapter
5、ListFragment已经实现了其ListView中的数据项的事件监听,可根需求重写onListItemClick方法
------------------------------------------------------------------------------------------------------------------------------------------------
下面看一个Demo
注意fragment是在3.0才开始支持的 ,如果导入的包是import android.app.
清单文件中需要改最低SDK版本为11
如果导入的包是 import android.support.v4.app.
则清单文件不需要改动
1 package com.xqx.listviewfragment; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.app.FragmentManager; 6 import android.app.FragmentTransaction; 7 import android.view.Menu; 8 9 public class MainActivity extends Activity {10 11 @Override12 protected void onCreate(Bundle savedInstanceState) {13 super.onCreate(savedInstanceState);14 setContentView(R.layout.activity_main);15 MyListFragment myfragment = new MyListFragment();16 //创建管理者对象17 FragmentManager manager = getFragmentManager();18 //创建事务对象19 FragmentTransaction action = manager.beginTransaction();20 //添加21 action.add(R.id.view_listfragment, myfragment);22 //提交事务23 action.commit();24 }25 26 }
110 11 17 18
1 package com.xqx.listviewfragment; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.ListFragment; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.ArrayAdapter;10 import android.widget.ListView;11 import android.widget.Toast;12 13 public class MyListFragment extends ListFragment{14 private Listlist; //适配器的数据源15 private ArrayAdapter adapter; //ListView的适配器16 17 @Override18 public void onCreate(Bundle savedInstanceState) {19 // TODO Auto-generated method stub20 super.onCreate(savedInstanceState);21 //给数据源添加数据22 list = new ArrayList ();23 list.add("第一条数据");24 list.add("第二条数据");25 list.add("第三条数据");26 list.add("第四条数据");27 adapter = new ArrayAdapter (getActivity(), android.R.layout.simple_list_item_1,list);28 29 }30 31 //设置适配器 必须放在onCreateView之后,因为在onCreateView初始化视图32 @Override33 public void onActivityCreated(Bundle savedInstanceState) {34 // TODO Auto-generated method stub35 super.onActivityCreated(savedInstanceState);36 //给ListView设置适配器37 setListAdapter(adapter);38 }39 40 @Override41 public void onListItemClick(ListView l, View v, int position, long id) {42 // TODO Auto-generated method stub43 super.onListItemClick(l, v, position, id);44 Toast.makeText(getActivity(), "点击了"+getListAdapter().getItem(position).toString(), 1).show();45 }46 }
相关知识: