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主界面)

安卓开发_浅谈Fragment之ListFragment的更多相关文章

  1. 安卓开发_浅谈Fragment之事务添加Fragment对象

    我们都知道给一个activity动态添加fragment的时候 有下面几种添加方式 看一下布局文件 <LinearLayout xmlns:android="http://schema ...

  2. 安卓开发_浅谈ListView(SimpleAdapter数组适配器)

    安卓开发_浅谈ListView(ArrayAdapter数组适配器) 学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表 总共3部分 一.MainAc ...

  3. 安卓开发_浅谈Android动画(四)

    Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属 ...

  4. 安卓开发_浅谈ListView(自定义适配器)

    ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...

  5. 安卓开发_浅谈Action Bar

    一.Action Bar 导航栏.是3.0之后出现的. 所以注意使用的时候清单文件要设置下 android:minSdkVersion="11"(至少11) 但如果使用v4包,则不 ...

  6. 安卓开发_浅谈OptionsMenus(选项菜单)

    Android平台下所提供的菜单大体上可分为三类:选项菜单.上下文菜单和子菜单. 当Activity在前台运行时,如果用户按下手机上的Menu键,此时就会在屏幕低端弹出相应的选项菜单.但这个功能需要开 ...

  7. 安卓开发_浅谈Notification(通知栏)

    Notification通知栏是显示在手机状态的消息,代表一种全局效果的通知 快速创建一个Notification的步骤简单可以分为以下四步: 第一步:通过getSystemService()方法得到 ...

  8. 安卓开发_浅谈ListView之分页列表

    前言: 在开发的过程中,有时候我们需要从网络解析一些数据,比如最近的一些新闻,我们需要把这些数据用ListView显示出来. 因为是解析一个网络数据源,这样将会一下子将所有的数据解析出来,当数据源数据 ...

  9. 安卓开发_浅谈AsyncTask

    现在就来学习一下AsyncTask. 一.先介绍一下AsyncTask: 在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给 ...

随机推荐

  1. DOMContentLoaded事件中使用异步

    概述 我在之前的博文(Performance面板看js加载)中提到过,如果利用监听DOMContentLoaded事件的方式来加载js是不能优化加载的,不能够替代jquery中的ready方法,原因是 ...

  2. redis 实现发布订阅的功能

    redis 除了作为缓存的功能外还可以用作消息中间件的功能,这片博客主要是介绍一下 redis 整合spring 实现消息的发布和订阅功能: 1:redis依赖,依赖两个包,redis 包, spri ...

  3. JS应用实例3:定时弹出广告

    在观看视频时候总会发现有广告弹出 这里就做一个类似这样的定时弹出广告的实例: 前面的JS代码和HTML写在同一个文件,实际开发中总是分开来写 用的时候引入即可 HTML代码: <!DOCTYPE ...

  4. Java学习笔记44(多线程一:Thread类)

    多线程的概念:略 多线程的目的:提高效率 主线程: package demo; //主线程 public class Demo { public static void main(String[] a ...

  5. Python Web Service

    搞移动端有段时间了,一直使用别人的API,自己也只写过ASP.NET网站作为网络服务,相对来讲是很大的短板.虽然ASP.NET可以提供想要的web服务,但是其体量臃肿,响应速度非常慢,这点我非常不喜欢 ...

  6. 课程四(Convolutional Neural Networks),第一周(Foundations of Convolutional Neural Networks) —— 3.Programming assignments:Convolutional Model: application

    Convolutional Neural Networks: Application Welcome to Course 4's second assignment! In this notebook ...

  7. Jenkins系列之一——初识

    Jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 功能 Jenkins功能包括 ...

  8. MyBatis大杂烩

    1. 集成到SpringBoot项目中 核心依赖是org.mybatis.spring.boot:mybatis-spring-boot-starter,当然还需要jdbc和数据库驱动 build.g ...

  9. 使用Dockerfile制作JDK+tomcat镜像

    1.准备好jdk和tomcatapache-tomcat-8.5.32.tar.gzjdk-8u181-linux-x64.tar.gz 注意:a.jdk和tomcat记得从官网下载,否则制作出来的镜 ...

  10. Xdebug在PHP中的安装配置

    Xdebug在PHP中的安装配置涉及php.ini配置文件的修改. 1  首先需要下载Xdebug,根据安装的PHP版本,选择合适的Xdebug版本, 2  安装Xdebug将下载的php_xdebu ...