安卓开发_浅谈Fragment之ListFragment
时间:2022-05-16
本文章向大家介绍安卓开发_浅谈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 }
相关知识:
安卓开发_慕课网_Fragment实现Tab(App主界面)
- HDUOJ-------2493Timer(数学 2008北京现场赛H题)
- go sync.Mutex 设计思想与演化过程 (一)
- HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
- HDUOJ----2485 Destroying the bus stations(2008北京现场赛A题)
- Go语言实践:从新手入门到上线真实的小型服务所遇到的那些坑
- Node.js真的无所不能?那些不适用的应用领域分析
- hdu-----2491Priest John's Busiest Day(2008 北京现场赛G)
- nyoj------79拦截导弹
- HDUOJ-------2719The Seven Percent Solution
- Golang记录、计算函数执行耗时、运行时间的一个简单方法
- uva----11729 Commando war (突击战争)
- uva-----11292 The Dragon of Loowater
- golang简单位运算示例
- 学编程,学单词.....在学习中积累自己的单词(不断更新__ing)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- akka-typed(10) - event-sourcing, CQRS实战
- 【每日一题】37. Sudoku Solver
- A quick introduction to innodb_ruby (2.对innodb_ruby的简单介绍)
- Webkit 内核初探
- 配置跨域后,框架帮我们做了什么?
- python应用(1):安装与使用
- TCP粘包和拆包
- 性能测试必备命令(1)- free
- 记一次有趣的挖矿病毒
- 性能测试必备知识(10)- Linux 是怎么管理内存的?
- Ng-Matero V10 正式发布!
- 30.Python装饰器
- 13-5 vi查找和替换
- 设计模式~适配器模式
- Django model 层之事务管理总结