列表视图是机器人中经常会使用的东西,绑定数据对于初学者来说,尤其是刚接触编程的人来说,往往会觉得很难理解,我上大二的时候学的java,但是基本上相当于没有学,什么都没写过,真正接触编程就是开始上手学安卓系统,把这些记录下来,自己可以回头看下,也可以让新手更好的理解
列表视图是机器人中经常会使用的东西,绑定数据对于初学者来说,尤其是刚接触编程的人来说,往往会觉得很难理解,我上大二的时候学的java,但是基本上相当于没有学,什么都没写过,真正接触编程就是开始上手学安卓系统,把这些记录下来,自己可以回头看下,也可以让新手更好的理解。高手绕过.
机器人中适配器我是这么理解的,是数据和视图之间的桥梁,数据在适配器中做处理,然后显示到视图上面。
适配器有很多种,有ArrayAdapterT,BaseAdapter,CursorAdapter,HeaderViewListAdapter,ListAdapter,ResourceCursorAdapter,SimpleAdapter,SimpleCursorAdapter,SpinnerAdapter,WrapperListAdapter .
我在项目中用到过的就ArrayAdapterT,(数组也可以是对象数组),BaseAdapter(所有适配器的基类),SimpleAdapter,CursorAdapter(数据来源是cursor)、简单光标适配器、感觉有必要总结一下。
最基本的要数软件开发工具包官网上面给的这个代码例子了http://开发者。安卓。com/resources/tutorials/views/hello-listviewhtml。
我自己写的一个例子,先上图,再贴上代码:
复制代码代码如下:包com。cz。列表。演示;导入安卓。app。活动;导入安卓。OS。捆绑;导入安卓。小部件。数组适配器;导入安卓。小部件。列表视图;公共类ArrayListDemo扩展activity { private ListView ListView;私有字符串[]适配器数据;/**首次创建活动时调用. Override public void onCreate(Bundle savedInstanceState){ super。onCreate(savedInstanceState);设置内容视图(r .布局数组_列表_布局);/* 找到这个listView */listView=(listView)findViewById(r . id。array _ list);/* 我们要在列表视图上面没条显示的数据,放到一个数组中*/adapterData=new String[] { '阿富汗','阿尔巴尼亚','阿尔及利亚','美属萨摩亚','安道尔','安哥拉','安圭拉','南极洲','安提瓜和巴布达','阿根廷','亚美尼亚','阿鲁巴','澳大利亚','奥地利','阿塞拜疆','巴林','孟加拉国','巴巴多斯','白俄罗斯','比利时','伯利兹','贝宁','百慕大','不丹','玻利维亚','波斯尼亚和黑塞哥维那','博茨瓦纳','布韦岛' };/* 这个是数组线类型的数组*///ArrayAdapterString array adapter=new ArrayAdapterString(//arraylistdemo。这个,安卓.R.layout.simple_list_item_1,//适配器数据);/* 设置列表视图的适配器*/listview。设置适配器(新的ArrayAdapterString(ArrayList演示。这个,安卓.R.layout.simple_list_item_1,适配器数据));} }
代码中写的有注释,我觉得要解释的有几点,都是很基础的,高手就见笑了。
1.适配器的角色是数据和视图之间的桥梁。2.在这个小例子中,为了显示一个数组,我们使用ArrayAdapter,array adapter。数据的数据类型是字符串,也可以是其他三种数据类型。ArrayAdapterString数组适配器=新的ArrayAdapterString (ArrayList演示。这个,安卓。R.Layout.Simple _ List _ Item _ 1,AdapterData)包括对象类型;这段代码是创建数组适配器的代码。其中有三个参数。第一个参数是上下文,即当前活动。第二个参数是android sdk中的内置布局。其中只有一个TextView。这个参数表示我们数组中每条数据的布局是这个视图,即每条数据都显示在这个视图上;第三个参数是我们想要显示的数据。根据这三个参数,listView会遍历adapterData中的每一条数据,读出一条,显示在第二个参数对应的布局中,这样就形成了我们看到的listView。不知道刚学的同学有没有理解。
本文来自博客“夏花般的生活”
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。