安卓开发_浅谈Fragment之ListFragment
2024-10-15 20:03:54
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=""
android:targetSdkVersion="" />
如果导入的包是 import android.support.v4.app.
则清单文件不需要改动
package com.xqx.listviewfragment; import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyListFragment myfragment = new MyListFragment();
//创建管理者对象
FragmentManager manager = getFragmentManager();
//创建事务对象
FragmentTransaction action = manager.beginTransaction();
//添加
action.add(R.id.view_listfragment, myfragment);
//提交事务
action.commit();
} }
MainActivity.class
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_listfragment"
android:name="com.xqx.listviewfragment.MyListFragment"
/> </RelativeLayout>
layout_main.xml
package com.xqx.listviewfragment; import java.util.ArrayList;
import java.util.List; import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MyListFragment extends ListFragment{
private List<String> list; //适配器的数据源
private ArrayAdapter adapter; //ListView的适配器 @Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//给数据源添加数据
list = new ArrayList<String>();
list.add("第一条数据");
list.add("第二条数据");
list.add("第三条数据");
list.add("第四条数据");
adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,list); } //设置适配器 必须放在onCreateView之后,因为在onCreateView初始化视图
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
//给ListView设置适配器
setListAdapter(adapter);
} @Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Toast.makeText(getActivity(), "点击了"+getListAdapter().getItem(position).toString(), ).show();
}
}
MyListFragment.class
相关知识:
安卓开发_慕课网_Fragment实现Tab(App主界面)
最新文章
- Java POI 解析word文档
- ThinkPHP3.1.3源码分析---php文件压缩zlib.output_compression 和 ob_gzhandler
- mysql_query()与mysql_real_query()
- Ubuntu进不入系统,一直停留在ubuntu图标画面(转)
- spark streaming 实时计算
- shell如何将文件上传至ftp
- c#以文件流的形式输出xml(可以解决内存溢出)-XmlTextWriter
- Redis用户添加、分页、登录、注册、加关注案例
- Toolkit 一键激活Office 2010方法及Office 2010 Toolkit工具下载
- MPQ Storm库 源代码分析 一个
- iOS缓存
- iosNSMutableAttributedString 简单操作
- JDK源码阅读——ArrayList
- Oracle中rownum原理介绍
- redis批量灌库
- [转帖]Ansible 入门秘诀
- 修改文件MD5值
- jquery.validate 验证记录
- git pull 提示 There is no tracking information for the current branch
- java.sql.SQLException: com.mysql.jdbc.Driver
热门文章
- AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码
- ubuntu 16.04下使用 python pip的安装问题。
- u-boot中debug的一些总结
- JAVA发送http get/post请求,调用http接口、方法
- li内有span需要右浮的问题
- 监督学习Supervised Learning
- ReentrantLock实现原理分析
- ContentProvider使用总结
- sql cast,convert,QUOTENAME,exec 函数学习记录
- 深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement