安卓开发_浅谈Fragment之ListFragment
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
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="21" />
如果导入的包是 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 @Override 12 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 }

1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 11 <fragment 12 android:layout_width="match_parent" 13 android:layout_height="match_parent" 14 android:id="@+id/view_listfragment" 15 android:name="com.xqx.listviewfragment.MyListFragment" 16 /> 17 18 </RelativeLayout>

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<String> list; //适配器的数据源 15 private ArrayAdapter adapter; //ListView的适配器 16 17 @Override 18 public void onCreate(Bundle savedInstanceState) { 19 // TODO Auto-generated method stub 20 super.onCreate(savedInstanceState); 21 //给数据源添加数据 22 list = new ArrayList<String>(); 23 list.add("第一条数据"); 24 list.add("第二条数据"); 25 list.add("第三条数据"); 26 list.add("第四条数据"); 27 adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,list); 28 29 } 30 31 //设置适配器 必须放在onCreateView之后,因为在onCreateView初始化视图 32 @Override 33 public void onActivityCreated(Bundle savedInstanceState) { 34 // TODO Auto-generated method stub 35 super.onActivityCreated(savedInstanceState); 36 //给ListView设置适配器 37 setListAdapter(adapter); 38 } 39 40 @Override 41 public void onListItemClick(ListView l, View v, int position, long id) { 42 // TODO Auto-generated method stub 43 super.onListItemClick(l, v, position, id); 44 Toast.makeText(getActivity(), "点击了"+getListAdapter().getItem(position).toString(), 1).show(); 45 } 46 }
相关知识:
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?