软件技术Android快速入门(五)之布局补全+自定义适配器

lookout 发表 于:5年前 浏览量:4

学习是自己的事情,学到了是自己的,了解更多的控件,让你在开发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------>数据放到哪里去

);     


自定义适配器

  1. private class MyAdapter extends BaseAdapter{  
  2.             private List<Person> persons;  
  3.             private LayoutInflater mInflater;  
  4.              
  5.             public MyAdapter(List<Person> persons) {  
  6.                         super();  
  7.                         this.persons = persons;  
  8.                         //得到布局加载器(加载xml布局文件到代码中)  
  9.                         mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  10.                          
  11.                         mInflater = LayoutInflater.from(getApplicationContext());  
  12.                          
  13.                         mInflater = getLayoutInflater();  
  14.                 }  
  15.                 //得到条目的总数  
  16.                 @Override  
  17.                 public int getCount() {  
  18.                         // TODO Auto-generated method stub  
  19.                         return persons.size();  
  20.                 }  
  21.                 //得到指定条目的数据  
  22.                 @Override  
  23.                 public Object getItem(int position) {  
  24.                         // TODO Auto-generated method stub  
  25.                         return persons.get(position);  
  26.                 }  
  27.                 //得到条目的id  
  28.                 @Override  
  29.                 public long getItemId(int position) {  
  30.                         // TODO Auto-generated method stub  
  31.                         return position;  
  32.                 }  
  33.                 //创建一个item的布局(类似一个工厂)  
  34.                 @Override  
  35.                 public View getView(int position, View convertView, ViewGroup parent) {  
  36.                         // TODO Auto-generated method stub  
  37.                         //1 加载布局(系统给我们提供了一个服务LayoutInflater:布局加载器)  
  38.                         View view = mInflater.inflate(R.layout.item, null);  
  39.                          
  40.                         //控制布局的背景色  
  41.                         if(position%2==0){  
  42.                                 view.setBackgroundColor(Color.GREEN);  
  43.                         }else{  
  44.                                 view.setBackgroundColor(Color.RED);  
  45.                         }  
  46.                         //2 得到控件  
  47.                         ImageView iv_icon = (ImageView) view.findViewById(R.id.lv_icon);  
  48.                         TextView tv_name = (TextView) view.findViewById(R.id.tv_name);  
  49.                         TextView tv_number = (TextView) view.findViewById(R.id.tv_number);  
  50.                         //3 得到数据  
  51.                         Person person = persons.get(position);  
  52.                         //4绑定数据给控件  
  53.                          
  54.                         iv_icon.setImageResource(person.src);  
  55.                         tv_name.setText(person.name);  
  56.                         tv_number.setText(person.number);  
  57.                         return view;  
  58.                 }  
  59.              
本文由 lookout发表。转载请注明出处:https://www.mihua.net/list/0/11692.html

发表评论

您的昵称:

猜你喜欢

最近更新