安卓开发_浅谈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主界面)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

android的RadioGroup讲解

这个主要是如何替换fragment的demo。效果图如下(下面的tabhost和上面的bar不属于这次的内容,这个是我做的一个应用程序框架的一部分,有需要的或者...

22510
来自专栏Android知识点总结

1-AVI--Fragment基础使用

1232
来自专栏移动开发面面观

监听Fragment生命周期

1864
来自专栏7号代码

Android网络与数据存储——SharedPreferences(实现是否开启引导界面)

SharedPreferences保存的数据主要是简单类型的key-value对。

1938
来自专栏Android机器圈

Android之Bmob移动后端云服务器

源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的...

7959
来自专栏佳爷的后花媛

动态创建Fragment

5.0 在使用fragment的activity里面调用getFragmentManager方法.得到fragmentManager对象

1191
来自专栏Java后端生活

购物APP项目开发(1)——菜单开发

1454
来自专栏james大数据架构

Android Fragment完全解析

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Acti...

2149
来自专栏佳爷的后花媛

Fragment横竖屏

第一步,创建两个Fragment。 Fragment1是横屏时的Fragment Fragment2是竖屏时的fragment。 代码如下:

1941
来自专栏CodingBlock

Android学习笔记(六)Fragment的生命周期

  在上一篇博文中对Fragment做了简单的介绍,现在再来探讨一下Fragment的生命周期。 一、Fragment的几种状态:   与Activity类...

23810

扫码关注云+社区

领取腾讯云代金券