前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓开发_浅谈Fragment之ListFragment

安卓开发_浅谈Fragment之ListFragment

作者头像
听着music睡
发布2018-05-18 13:04:27
2.1K0
发布2018-05-18 13:04:27
举报
文章被收录于专栏:Android干货

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

代码语言:javascript
复制
<uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="21" />

如果导入的包是 import android.support.v4.app.

则清单文件不需要改动

代码语言:javascript
复制
 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 }
代码语言:javascript
复制
 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>
代码语言:javascript
复制
 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主界面)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档