android的适配器:将数据绑定到视图上去,以何种方式来展示显示的格式。其作用其实是连接数据和AdpterView的桥梁。

理清楚 数据源,AdpterView,适配器之间的关系

AdpterView:Gallery,ListView和Spinner,Gridview等是AdapterView的子类。

通常的,我们有使用三个适配器:ArrayAdpter, SimpleAdpter,SimpleCursorAdpter.它们都继承自BaseAdpter.

重点关心它们的数据源

ArrayAdpter:实现简单的listview的数据绑定,默认情况下绑定每个对象的toString值到layout中预先定义好的Textview上。注意这个参数的顺序和意义就行了,this表示上写文。ArrayAdapter<String>(this,Android.R.Layout.Simple_List_Item_1,sex);这边注意一下,继承了listactivity,该activity只能有一个listview,已经封装了一个listview在其中,所以可以不需要setcontview()方法来绑定布局。关于listactivty的用法读者可以找点资料看看。

public class Example extends ListActivity{                    String[] sex = new String(){"男",“女”}//数据源                    ArrayAdapter<String>  adapter;//数组适配器,用的是泛型                    public voidonCreate(Bundle SavedInstanceState){                    super.onCreate(SavedInstanceStat);                    //在对适配器初始化的时候,顺便把数据源装载到适配里,                                                                //this.Android.R.Layout.Simple_List_Item_1这句话的意思是将数据源以系统定义好的样式放           到适配器里.                               adapter=newArrayAdapter<String>(this,Android.R.Layout.Simple_List_Item_1,sex);                   this.setAdapter(adapter);//这是一个控件类,所以可以直接将适配器绑定到本身对象中。                        }                }

SimpleAdpter:notifyDataSetChange()可以刷新adpterview上的数据,相当于html中页面重加载一样。这了也注意SimpleAdapter(this, mylist,//数据来源 R.layout.my_listitem,// 每行的布局//动态数组与ListItem对应的子项。可以通过对listview.setOnItemClickListener来设置对每列的监听事件。

                      new   String[]{"ItemTitle", "ItemText"}, //ListItem的XML文件里面的两个TextView ID  new int[]  {R.id.ItemTitle,R.id.ItemText});

   List作为数据源,填充的是SimpleAdapter                        ListView list = (ListView)findViewById(R.id.MyListView);                              //生成动态数组,并且转载数据                      ArrayList<HashMap<String, String>> mylist = newArrayList<HashMap<String, String>>();                      for(int i=0;i<30;i++)                              {                                       HashMap<String, String>map = new HashMap<String, String>();                                       map.put("ItemTitle","This is Title.....");                                       map.put("ItemText","This is text.....");                             mylist.add(map);                             }                    //生成适配器,数组===》ListItem             SimpleAdapter mSchedule = new SimpleAdapter(this, //没什么解释 mylist,//数据来源      R.layout.my_listitem,//ListItem的XML实现 //动态数组与ListItem对应的子项                                new   String[]{"ItemTitle", "ItemText"}, //ListItem的XML文件里面的两个TextView ID  new int[]  {R.id.ItemTitle,R.id.ItemText});                     //添加并且显示                      list.setAdapter(mSchedule);                    }

SimpleCursorAdpter:

SimpleCursorAdapter一般主要用于数据库,它的数据来源一般都是数据库查询得到的Cursor 我们来看下面的例子:                    String uriString = “content://contacts/people/”;                     Cursor myCursor =managedQuery(Uri.parse(uriString), null, null, null, null);          String[] fromColumns = new String[]{People.NUMBER, People.NAME};                    int[] toLayoutIDs = new int[] {R.id.nameTextView, R.id.numberTextView};                   SimpleCursorAdapter myAdapter;                   myAdapter=newSimpleCursorAdapter(this,R.layout.simplecursorlayout,myCursor,fromColumns,                   toLayoutIDs);//传入当前的上下文、一个layout资源,一个游标和两个数组:一个包含使用的列                      //的名字,另一个(相同大小)数组包含View中的资源ID,用于显示相应列的数                   据值。                   myListView.setAdapter(myAdapter);我们把一个游标绑定到了ListView上,并使用自定义的layout显示来显示每一个Item。

更多相关文章

  1. 【转】java 总结:泛型
  2. 初识Android(安卓)Adapter
  3. Android(安卓)ListView的创建以及数据适配器的使用
  4. Android(安卓)JNI 学习笔记
  5. Android开发适配器系列:AutoCompleteTextView和MultiAutoComplete
  6. Android中hw_get_module函数分析
  7. Android(安卓)SimpleAdapter的参数
  8. Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
  9. Android(安卓)贪吃贪游戏(源码详解和改进)

随机推荐

  1. Android计算缓存大小、清空缓存
  2. Android取消EditText自动获取焦点
  3. Android开发中Android与网页(JavaScrip)t的
  4. Android 实现 选择文件对话框
  5. Android Studio 报错小记
  6. 6.1.5 GridView详解
  7. 设置Android程序的默认安装位置
  8. Android 手机震动 设置震动时间
  9. TabActivity的使用遇到的问题
  10. Android中使用TagFlowLayout制作动态添加