ym——Android从零开始(4)(自动补全+列表+网格+自定义适配器)(新)

转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!


前言

学习是自己的事情,学到了是自己的,了解更多的控件,让你在开发UI变得随心所欲,学习吧,少年~!


AutoComplateTextView(自动补全控件)

所需适配器:

ArrayAdapter(Adapter)

所需数据源:

String[] object(data)

注意:在配置View的时候要加上 (android:complatethreshold="1")  表示输入一个字符的时候就开始匹配,默认是输入全部


ListView

列表View

所需适配器:

SimpleAdapter

所需数据源:

SimpleAdapter


GridView

网格View

所需适配器:

SimpleAdapter

所需数据源:

SimpleAdapter 

样式:

    <!-- android:numColumns="3" 一行3

    android:horizontalSpacing="2dip" 水平间距

        android:verticalSpacing="2dip" 垂直间距

    -->


它们都需要的适配器:
ArrayAdapter 继承BaseAdapter  数据源为字符串数组  

ArrayAdapter构造:

ArrayAdapter<String>(

    context,------->上下文

    resouce,-------->引用layout

    textViewResouce,---->引用layout中的ID

    object------>数据

);

SimpleAdapter 继承 BaseAdapter 数据源为集合对象.并且可以配置对象属性和item布局中的映射关系                       

SimpleAdapter构造:

SimpleAdapter(

  context,------>上下文

data,---------->是一个List<Map<K,V>>集合,存放数据

resoouce,------>引用layout

from,------>数据从哪里来  

to------>数据放到哪里去

);     


自定义适配器

private class MyAdapter extends BaseAdapter{
            private List<Person> persons;
            private LayoutInflater mInflater;
           
            public MyAdapter(List<Person> persons) {
                        super();
                        this.persons = persons;
                        //得到布局加载器(加载xml布局文件到代码中)
                        mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                       
                        mInflater = LayoutInflater.from(getApplicationContext());
                       
                        mInflater = getLayoutInflater();
                }
                //得到条目的总数
                @Override
                public int getCount() {
                        // TODO Auto-generated method stub
                        return persons.size();
                }
                //得到指定条目的数据
                @Override
                public Object getItem(int position) {
                        // TODO Auto-generated method stub
                        return persons.get(position);
                }
                //得到条目的id
                @Override
                public long getItemId(int position) {
                        // TODO Auto-generated method stub
                        return position;
                }
                //创建一个item的布局(类似一个工厂)
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                        // TODO Auto-generated method stub
                        //1 加载布局(系统给我们提供了一个服务LayoutInflater:布局加载器)
                        View view = mInflater.inflate(R.layout.item, null);
                       
                        //控制布局的背景色
                        if(position%2==0){
                                view.setBackgroundColor(Color.GREEN);
                        }else{
                                view.setBackgroundColor(Color.RED);
                        }
                        //2 得到控件
                        ImageView iv_icon = (ImageView) view.findViewById(R.id.lv_icon);
                        TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
                        TextView tv_number = (TextView) view.findViewById(R.id.tv_number);
                        //3 得到数据
                        Person person = persons.get(position);
                        //4绑定数据给控件
                       
                        iv_icon.setImageResource(person.src);
                        tv_name.setText(person.name);
                        tv_number.setText(person.number);
                        return view;
                }
           
}

你可能感兴趣的:(android,移动互联网,android从零开始)