高级View和自定义适配器AutoComplateTextView(ArrayAdapter)
自动补全 所需适配器: ArrayAdapter(Adapter) 所需数据源: String[] object(data) 注意:在配置View的时候要加上 (android:complatethreshold="1") 表示输入一个字符的时候就开始匹配,默认是输入全部 ListView(SimpleAdapter)列表View 所需适配器: SimpleAdapter 所需数据源: List<Map<String,Object>> SimpleAdapter adapter = new SimpleAdapter( this,//上下文 data,//数据 R.layout.item,//布局 from,//数据从哪里来 to);//数据到那里去 GridView(SimpleAdapter)网格View 所需适配器: SimpleAdapter 所需数据源: List<Map<String,Object>> SimpleAdapter adapter = new SimpleAdapter( this,//上下文 data,//数据 R.layout.item,//布局 from,//数据从哪里来 to);//数据到那里去 样式: <!-- android:numColumns="3" 一行3列 android:horizontalSpacing="2dip" 水平间距 android:verticalSpacing="2dip" 垂直间距 -->
适配器 ArrayAdapter<String>(context,------->上下文 resouce,-------->引用layout textViewResouce,---->引用layout中的ID object);------>数据 -->SimpleAdapter 继承 BaseAdapter 数据源为集合对象.并且可以配置对象属性和 item布局中的映射关系 SimpleAdapter(context,------>上下文 data,---------->是一个List<Map<K,V>>集合,存放数据 resoouce,------应用layout from,------>数据从哪里来 to);------>数据放到哪里去 自定义适配器private class MyAdapter extends BaseAdapter{ private List<Person> persons; private LayoutInflater mInflater;
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; }
} |
自动补全+列表+网格+自定义适配器
最新推荐文章于 2025-08-09 11:38:39 发布