android总结整理----(2)自定义ListView(SimpleAdapter实现)
2015-01-22 20:05
573 查看
Adapter是链接后端数据和前端UI的重要适配器接口,充当了UI和数据之间的一个纽带。Data、View和Adapter关系如下:
常见的Adapter子类有:
BaseAdapter:是一个抽象类,继承它要实现较多方法,具有较高的灵活性。
ArrayAdapter:最简单的子类,只能展示一行字。
SimpleAdapter:可以自定义各种效果。
SimpleCursorAdapter:使用与简单的纯文字ListView,它需要Cursor的字段和UI的id对应起来。
MainActivity.java源码:
(1)MainActivity主界面的布局源码activity_main.xml:
separator.png
常见的Adapter子类有:
BaseAdapter:是一个抽象类,继承它要实现较多方法,具有较高的灵活性。
ArrayAdapter:最简单的子类,只能展示一行字。
SimpleAdapter:可以自定义各种效果。
SimpleCursorAdapter:使用与简单的纯文字ListView,它需要Cursor的字段和UI的id对应起来。
一、Activity
MainActivity.java源码:public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Step1 String[] contentArray = new String[]{"内容1","内容2","内容3","内容4","内容5"}; ListView lv = (ListView)findViewById(R.id.lv); //Step2 ArrayList<HashMap<String,Object>> lists = new ArrayList<HashMap<String,Object>>(); for(int i=0; i<contentArray.length; i++){ HashMap<String,Object> map = new HashMap<String,Object>(); map.put("startTimeText", "22:00"); map.put("endTimeText", "23:00"); map.put("separator", R.drawable.separator); map.put("content", contentArray[i]); lists.add(map); } //Step3 SimpleAdapter adapter = new SimpleAdapter( this, lists, R.layout.list_item, new String[]{"startTimeText","endTimeText","separator","content"}, new int[] {R.id.startTimeText,R.id.endTimeText,R.id.separator,R.id.content}); //Step4 lv.setAdapter(adapter); } }
二、xml布局文件
(1)MainActivity主界面的布局源码activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>(2)ListView列表单元的布局源码list_item.xml:
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent<span style="font-family: Arial, Helvetica, sans-serif;">" </span> android:gravity="center_vertical" android:layout_width="match_parent" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="2" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/startTimeText" android:layout_height="wrap_content" android:layout_width="match_parent" /> <TextView android:id="@+id/endTimeText" android:layout_height="wrap_content" android:layout_width="match_parent" /> </LinearLayout> <ImageView android:id="@+id/separator" android:layout_weight="1" android:layout_width="0dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/content" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="12"/> </LinearLayout>
三、相关资源
res/drawable-mdpi/下的文件:separator.png
四、效果截图
五、参考
(1)http://blog.csdn.net/fznpcy/article/details/8658155/相关文章推荐
- android总结整理----(3)自定义ListView(自定义BaseAdapter实现)
- android总结整理----(1)自定义按钮实现
- 菜单儿android客户端ListView下拉zoom, 自定义形状实现总结
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- Android中自定义Adapter实现ListView动态刷新进度条
- Android实现ListView异步加载图片总结
- Android的Master/Detail风格界面中实现自定义ListView的单选
- ANDROID中自定义ADAPTER实现LISTVIEW动态刷新进度条
- Android中自定义Adapter实现ListView动态刷新进度条
- Android---自定义带CheckBox的ExpandableListView实现
- android 自定义ScrollView实现反弹效果(以及解决和ListView之间的冲突) .
- Android入门:ListView(SimpleAdapter实现)
- android——ListView功能的实现(使用simpleAdapter)
- 实现自定义view(2):仿Android QQ多屏幕显示ListView的效果
- android 自定义ScrollView实现反弹效果(以及解决和ListView之间的冲突)
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- Android中自定义Adapter实现ListView动态刷新进度条
- (android实战)ListView样式实现总结
- 【Android游戏开发二十三】自定义ListView【通用】适配器并实现监听控件!
- Android开发:setContentView切换界面,自定义带CheckBox的ListView显示SQlite条目-----实现