当前位置:操作系统 > 安卓/Android >>

Android 程式开发:(十三)特殊碎片 —— 13.1 ListFragment

ListFramgent就是一个包含ListView的Fragment,它可以通过数据源(数组或游标)显示一系列的信息。ListFragment是非常有用处的,就像RSS,可能左边显示一个列表,右边显示被选中的列表所对应的内容。

可以通过继承ListFragment创建一个ListFragment对象。下面将展示如何使用ListFragment。

1. 创建一个工程:ListFragmentExample。

2. main.xml中的代码。

[html] 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 
 
<fragment  
    android:name="net.manoel.ListFragmentExample.Fragment1" 
    android:id="@+id/fragment1" 
    android:layout_weight="0.5" 
    android:layout_width="0dp" 
    android:layout_height="200dp" /> 
 
<fragment  
    android:name="net.manoel.ListFragmentExample.Fragment1" 
    android:id="@+id/fragment2" 
    android:layout_weight="0.5" 
    android:layout_width="0dp" 
    android:layout_height="300dp" /> 
 
</LinearLayout> 
3、在re/layout下面,新建一个文件:fragment1.xml。
[html] 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
     
    <ListView  
        android:id="@id/android:list" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"                
        android:layout_weight="1" 
        android:drawSelectorOnTop="false"/> 
                                
</LinearLayout> 
4、在包路径下面新建一个类:Fragment1.java。
[java] 
public class Fragment1 extends ListFragment { 
    String[] presidents = { 
        "Dwight D. Eisenhower", 
        "John F. Kennedy", 
        "Lyndon B. Johnson", 
        "Richard Nixon", 
        "Gerald Ford", 
        "Jimmy Carter", 
        "Ronald Reagan", 
        "George H. W. Bush", 
        "Bill Clinton", 
        "George W. Bush", 
        "Barack Obama" 
    }; 
 
    @Override 
    public View onCreateView(LayoutInflater inflater,  
    ViewGroup container, Bundle savedInstanceState) {         
        return inflater.inflate(R.layout.fragment1, container, false); 
    } 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setListAdapter(new ArrayAdapter<String>(getActivity(), 
            android.R.layout.simple_list_item_1, presidents)); 
    } 
     
    public void onListItemClick(ListView parent, View v,  
    int position, long id)  
    {           
        Toast.makeText(getActivity(),  
            "You have selected " + presidents[position],  
            Toast.LENGTH_SHORT).show(); 
    }   
 

5、按F11在模拟器上调试。会看见有两个信息列表。


6、随便点击一行,就会有一个消息弹出。

 

由于在main.xml中分别设置了两个ListFragment的android:layout_height属性,所以这两个列表的高度不一样。

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,