Android 复习笔记5 listView ArrayList

来源:互联网 发布:苹果安装windows系统 编辑:程序博客网 时间:2024/05/01 22:12

列表 listview

列表应该算得上是最难的系统自带组件了;归根结底,是因为listview本质要完成mvc所有层次;

1

既然是一个列表,那就应该有列表项,所以数据就会很多。那不管你元数据有多少条,我要做的事是把你的数据想办法发到页面上;
既然有列表项,而我们需要一个中转站 一个能够将数据打包发给页面的
这就是ArrayAdapter<> 一个适配器 很明显它应该处于control层;控制数据传输给页面

public class CrimeListFragment extends android.support.v4.app.ListFragment{ //listview控制器    @Override    public  void onCreate(Bundle savedInstanceState)    {            //造一个CrimeAdapter 出来        CrimeAdapter crimeAdapter =new CrimeAdapter(crimes);        setListAdapter(crimeAdapter);//将适配器传给listview    }    private   class  CrimeAdapter extends  ArrayAdapter<Crime> {        public CrimeAdapter(ArrayList<Crime> crimes)        {            super(getActivity(),0,crimes);//        }        int a=0;        @Override        public  View getView (int position, View convertView, ViewGroup parent)        {            //通过getView函数自定义组件 可以通过自定义xml引入自定义组件;            return  convertView;        }    }

2

对于元数据,如果我们的数据是一个类型的,而我们需要将其发送给ArrayAdapter<> ,我们总不能用for循环吧,ArrayAdapter<>需要的便是一个数据集合对象;

public class CrimeLab           //crime类就不列出了{      //单例 整个类只有一个对象;    private  static  CrimeLab crimeLab;    private Context appcontext;    private CrimeLab(Context appcontext)    {        this.appcontext=appcontext;    }    public  static  CrimeLab get(Context c){  //该方法使得应用整个周期 单例都存活        if(crimeLab==null)        {            crimeLab=new CrimeLab(c.getApplicationContext());        }        return crimeLab;    }}
0 0
原创粉丝点击