博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发系列(十九个):至SimpleAdapter设置样式
阅读量:5885 次
发布时间:2019-06-19

本文共 3922 字,大约阅读时间需要 13 分钟。

Adapter任务:在数据adapter处理后做。展会上的观点

对于一般ArrayAdapter供。传递给ArrayAdapter之后就能够在视图上用一个列表显示出这个字符串数组。

比例如以下边的代码:

listView.setAdapter(new ArrayAdapter
(this,android.R.layout.simple_list_item_1,ls));

可是。比方我们手机的联系人文件夹所看到的。不不过有列表,并且有头像。可能还有手机号码。

所以,单纯的ArrayAdapter是不可以实现这样的复杂的视图的。

我们能够用SimpleAdapter来实现这样的复杂的视图,只是须要设计样式。

我们新建一个Android项目,然后。我们在layout文件夹下定义一个ListView。来存放列表:

main.xml:

> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" > <!-- 定义一个List --> <ListView android:id="@+id/mylist" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>

在定义这个之后。我们就能够写java代码了:

SimpleAdapterTest.java:

package org.crazyit.ui;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;import android.widget.Toast;public class SimpleAdapterTest extends Activity{	private String[] names = new String[]		{ "虎头", "弄玉", "李清照", "李白"};	private String[] descs = new String[]		{ "可爱的小孩", "一个擅长音乐的女孩"			, "一个擅长的文学的女性", "浪漫主义诗人"};		//这是三张图片的id的集合	private int[] imageIds = new int[]		{ R.drawable.tiger , R.drawable.nongyu		, R.drawable.qingzhao , R.drawable.libai};	@Override	public void onCreate(Bundle savedInstanceState)	{		super.onCreate(savedInstanceState);		setContentView(R.layout.main);				// 创建一个List集合,List集合的元素是Map		List
> listItems = new ArrayList
>(); for (int i = 0; i < names.length; i++) { Map
listItem = new HashMap
(); listItem.put("header", imageIds[i]); listItem.put("personName", names[i]); listItem.put("desc", descs[i]); listItems.add(listItem); } // 创建一个SimpleAdapter SimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.simple_item, new String[] { "personName", "header" , "desc"}, new int[] { R.id.name, R.id.header , R.id.desc }); ListView list = (ListView) findViewById(R.id.mylist); // 为ListView设置Adapter list.setAdapter(simpleAdapter); // 为ListView的列表项单击事件绑定事件监听器 list.setOnItemClickListener(new OnItemClickListener() { // 第position项被单击时激发该方法。 @Override public void onItemClick(AdapterView

> parent, View view, int position, long id) { Toast.makeText(getApplicationContext(), names[position]+ "被单击了", 1).show(); } }); list.setOnItemSelectedListener(new OnItemSelectedListener() { // 第position项被选中时激发该方法。 @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(getApplicationContext(), names[position]+ "被选中了", 1).show(); } @Override public void onNothingSelected(AdapterView<?

> parent) { } }); } }

在上边java代码中。创建SimpleAdapter对象的时候,我们用到了一个视图:R.layout.simple_item,这个就是我们自己定义的样式,能够通过这个样式来实现复杂的视图。
simple_item.xml:

--> <ImageView android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp" /> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- 定义一个TextView,用于作为列表项的一部分。

--> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:textColor="#f0f" android:paddingLeft="10dp" /> <!-- 定义一个TextView。用于作为列表项的一部分。 --> <TextView android:id="@+id/desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14dp" android:paddingLeft="10dp" /> </LinearLayout> </LinearLayout>

把这些组合起来就能够构成下边的效果:

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
ACM MM 论文 | 用于行人重识别的多层相似度感知CNN网络 ...
查看>>
如何利用 CSS 动画原理,在页面上表现日蚀现象
查看>>
Redis分布式锁的正确实现方式
查看>>
Linux找回缺少的命令
查看>>
镭速介绍关于高速数据传输!
查看>>
mysql中使用enum,如何获取所有可能的值
查看>>
数据连通这件事,英特尔也很上心
查看>>
阿里云首次在ASPLOS'19发布重磅论文:揭秘帮助ECS快速迭代的热升级技术
查看>>
基于快速GeoHash,如何实现海量商品与商圈的高效匹配?
查看>>
seo知否:死链对于网站的利与弊【对网站的特殊影响】
查看>>
荣耀品牌全面升级背后:以战代守,深蹲起跳
查看>>
这本书会是你在算法分析道路上最好的养料
查看>>
Unity组件:Lens Flare 镜头光晕
查看>>
来啃硬骨头——费波纳茨(Fibonacci)矩阵快速幂 c++
查看>>
我被阿里云美女清宵的观后感给撩了
查看>>
进一步成熟,Chrome OS 提供了更完整的 USB 支持
查看>>
Chrome 正在测试新的扩展菜单
查看>>
USB-IF 再度为 USB 3 改名,这次更难辨别了
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.11. 文本搜索类型
查看>>
smartforms相关知识
查看>>