zoukankan      html  css  js  c++  java
  • 安卓开发_浅谈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 }
    MainActivity.class
     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>
    layout_main.xml
     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 }
    MyListFragment.class

    相关知识:

    安卓开发_慕课网_Fragment实现Tab(App主界面)

  • 相关阅读:
    Windows2012中安装域控(DC) + SQL Server 2014 + TFS 2015
    CentOS7上GitHub/GitLab多帐号管理SSH Key
    CentOS7安装Cobbler
    Windows2012中Python2.7.11+Python3.4.4+Pycharm
    CentOS7上Nginx的使用
    CentOS7上GitLab的使用
    CentOS7安装Puppet+GitLab+Bind
    python
    接口自动化测试链接https://www.cnblogs.com/finer/
    Android sdk测试方法链接
  • 原文地址:https://www.cnblogs.com/xqxacm/p/4796003.html
Copyright © 2011-2022 走看看