使用ListView的Fragment

转载自http://qurtyy.blog.163.com/blog/static/574436812013112543231523/

使用ListView的Fragment

API LEVEL 11

1.使用ListFragment可实现包含Listiew的Fragment

2.在Fragment的布局中必须包含id “@android:id/list”(在代码中则是list)的Listview

3.只能使用SimpleAdapter或者SimpleCursorAdapter作为适配器

4.直接使用ListFragment的setListAdapter()来设置适配器【不要给ListView设置】

5.ListView点击事件的监听,重写ListFragment的onListItemClick(ListView l, View v, int position, long id)方法

1)新建ListFragment的布局fragment1.xml

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical" >  
    <TextView   
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:gravity="center"  
        android:text="Titles"  
        />  

    <ListView   
        android:id="@id/android:list"  <!--此处的id必须为@id/android:list-->
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        ></ListView>  

</LinearLayout> 

2)新建Fragment继承自ListFragment,命名为Fragment1。

    import java.util.ArrayList;  
    import java.util.HashMap;  
    import java.util.List;  
    import java.util.Map;  

    import android.app.Activity;  
    import android.os.Bundle;  
    import android.support.v4.app.ListFragment;  
    import android.util.Log;  
    import android.view.LayoutInflater;  
    import android.view.View;  
    import android.view.ViewGroup;  
    import android.widget.ListView;  
    import android.widget.SimpleAdapter;  
    import android.widget.TextView;  
    import android.widget.Toast;  

    /** 
     * @描述 在Fragment中要使用ListView,就要用ListFragment 
     * */  
    public class Fragment1 extends ListFragment   {  

        private String TAG = Fragment1.class.getName();  
        private ListView list ;  
        private SimpleAdapter adapter;  

        /** 
         * @描述 在onCreateView中加载布局 
         * */  
        @Override  
        public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                Bundle savedInstanceState) {  
            View view = inflater.inflate(R.layout.fragment1, container,false);  
            list = (ListView) view.findViewById(android.R.id.list);  
            Log.i(TAG, "--------onCreateView");  
            return view;  
        }  

        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            b = savedInstanceState;  
            Log.i(TAG, "--------onCreate");  
            String[] list = {"Class 1","Class 2","class 3","Class 4","Class 5"};  
            adapter = new SimpleAdapter(getActivity(), getData(list), R.layout.item_list, new String[]{"title"}, new int[]{R.id.title});  
            setListAdapter(adapter);  

        }  

        @Override  
        public void onListItemClick(ListView l, View v, int position, long id) {  
            super.onListItemClick(l, v, position, id);  

            System.out.println(l.getChildAt(position));  
            HashMap<String, Object> view= (HashMap<String, Object>) l.getItemAtPosition(position);  
            System.out.println(view.get("title").toString()+"+++++++++title");  




            Toast.makeText(getActivity(), TAG+l.getItemIdAtPosition(position), Toast.LENGTH_LONG).show();  
            System.out.println(v);  

            System.out.println(position);  


        }  




        private List<? extends Map<String, ?>> getData(String[] strs) {  
            List<Map<String ,Object>> list = new ArrayList<Map<String,Object>>();  

            for (int i = 0; i < strs.length; i++) {  
                Map<String, Object> map = new HashMap<String, Object>();  
                map.put("title", strs[i]);  
                list.add(map);  

            }  

            return list;  
        }  

        @Override  
        public void onActivityCreated(Bundle savedInstanceState) {  
            super.onActivityCreated(savedInstanceState);  
            Log.i(TAG, "--------onActivityCreated");  

        }  

        @Override  
        public void onAttach(Activity activity) {  
            super.onAttach(activity);  
            Log.i(TAG, "----------onAttach");  
        }  

    }  





3)新建Activity,继承自FragmentActivity,将Fragment添加到Activity中。命名为FragmentsActivity。


Java代码  收藏代码

    public class FragmentsActivity extends FragmentActivity {  

        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_fragments);  
            Display display = getWindowManager().getDefaultDisplay();  
            Fragment1 f1 = new Fragment1();  
            FragmentManager manager  = getSupportFragmentManager();  
            manager.beginTransaction().add(R.id.fragments, f1).commit();  



        }  

        @Override  
        public boolean onCreateOptionsMenu(Menu menu) {  
            // Inflate the menu; this adds items to the action bar if it is present.  
            getMenuInflater().inflate(R.menu.fragments, menu);  
            return true;  
        }  

    }  

效果图:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值