博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓开发_浅谈Fragment之ListFragment
阅读量:7012 次
发布时间:2019-06-28

本文共 3113 字,大约阅读时间需要 10 分钟。

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 }
MainActivity.class
1 
10 11
17 18
layout_main.xml
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 List
list; //适配器的数据源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 }
MyListFragment.class

 

 

相关知识:

转载地址:http://fhmtl.baihongyu.com/

你可能感兴趣的文章