实现图文混排ListView展示 ---- Android版 博客分类: android android java listview
程序员文章站
2024-03-15 16:45:18
...
使用eclipse创建一个Android Application 创建完成之后,开始java代码的编写
- 声明变量
//listview列表 private ListView listView; //数据适配器 private SimpleAdapter simp_adapter; //被展示数据源 private List<Map<String,Object>>dataList;
- 在res/layout 中创建 main.xml和item.xml ,把main.xml做为展示的主页面 ,那么在MainActivity.java文件中函数onCreat修改为:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
- 在 main.xml 中添加一个listview,(手动拖动控件也会将代码展示到main.xml中)如下:
<ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>
- item.xml文件是布局listview中一栏的图片和文字 。在item.xml文件中添加一个imageview 和 两个 textview,代码如下:
<ImageView android:id="@+id/pic" android:layout_marginTop="15dp" android:layout_marginLeft="15dp" android:paddingBottom="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/aiweier"/> <TextView android:id="@+id/name" android:layout_marginLeft="15dp" android:layout_marginTop="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="20sp" /> <TextView android:id="@+id/profile" android:layout_marginLeft="-60dp" android:layout_marginTop="35dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="15sp" />
- 将在MainActivity.java文件中声明的变量实例化
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.listView); //新建一个数组适配器 //ArrayAdapter(上下文,当前listview加载的每一个列表项所对应的布局文件,数据源) //SimpleAdapter() /* * context:上下文 * data:(List<? extends Map<String, ?>> data)一个Map所组成的List集合 * 每一个map都回去对应了listview列表中的一行 * 每一个Map(键值对)中的键必须包含所有在from中所指定的键 * resource:列表项的布局文件ID,与from成对应关系 * from:Map中的键名 * to:绑定数据视图中的ID */ //适配器加载数据源 dataList = new ArrayList<Map<String,Object>>(); simp_adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"pic","name","profile"}, new int[]{R.id.pic,R.id.name,R.id.profile}); //视图加载适配器 listView.setAdapter(simp_adapter); }
- 左侧显示的图片保存在文件/res/drawable-hdpi中,这样我们就可以通过R.drawable.filename获取到图片了,如:R.drawable.fanbingbing,这可是一个int类型的数据,所以我用int类型的数组存储这些图片数据
int[] arr_pic = {R.drawable.fanbingbing,R.drawable.yangmi,R.drawable.zhangxinyi,R.drawable.aiweier,R.drawable.liushishi,R.drawable.piaoxinhui,R.drawable.yuner}; //我们这有 范冰冰 杨幂 张歆艺 艾薇儿 刘诗诗 朴信惠 允儿
- 实现获取数据的函数getData(),函数的返回值类型为List<Map<String,Object>>,实现代码如下:
private List<Map<String,Object>> getData() { int[] arr_pic = {R.drawable.fanbingbing,R.drawable.yangmi,R.drawable.zhangxinyi,R.drawable.aiweier,R.drawable.liushishi,R.drawable.piaoxinhui,R.drawable.yuner}; String[] arr_name = {"范冰冰","杨幂幂","张歆艺","艾薇儿","刘诗诗","朴信惠","允儿儿"}; String[] arr_profile = { "1981年9月16日生于山东青岛,毕业于上海师范大学谢晋影视艺术学院,中国女演员。", "中国女演员、歌手、电视剧制片人。出生于北京。毕业于北京电影学院表演系。", "中国内地女演员,出生于1981年5月29日,2005年毕业于*戏剧学院表演系本科班。", "1984年9月27日出生于加拿大安大略省,加拿大女歌手、词曲创作者、演员。", "原名刘诗施,中国内地影视女演员,出生于北京,毕业于北京舞蹈学院芭蕾舞专业。", "2001年,11岁的朴信惠拍摄了李承焕的第一部MV《爱吗》", "1990年5月30日出生于首尔,韩国女歌手、演员,女子演唱团体少女时代成员。" }; for(int i = 0; i < 7; i ++) { Map<String,Object> map = new HashMap<String, Object>(); map.put("pic", arr_pic[i]); map.put("name", arr_name[i]); map.put("profile", arr_profile[i]); dataList.add(map); } return dataList; }
- 好了,整个的图文混排的listview展示完毕了,大家请欣赏
推荐阅读
-
实现图文混排ListView展示 ---- Android版 博客分类: android android java listview
-
ListView编写 博客分类: android androidlistView
-
Android之ListView监听事件(10) 博客分类: Android初步 安卓;Listview事件监听
-
Android之listview运用(美团美食列表)(9) 博客分类: Android初步 androidlistview列表滚动
-
Android实现ListView异步加载的方法(改进版)
-
Android实现ListView异步加载的方法(改进版)
-
Android实现listview tag,重写adapter 博客分类: Android
-
Android实现listview tag,重写adapter 博客分类: Android
-
Android ListView Delay Image Loading 模式 博客分类: android android
-
Android ListView Delay Image Loading 模式 博客分类: android android