ListView有几种比较常用的方法,
学习了ArrayAdapter 以及 SimpleAdapter的方法
1) SimpleAdapter 比较适合文字\图片都不同的listview_item的列表
不多说,上代码 (个人给res/drawble-hdpi加了几张图片,以便区分)
//MainActivity.java 将一个 list<map>依次放入listview中, 一个map 对应一个 item
package com.yline.simpleadapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class MainActivity extends Activity {
private ListView lv;
private List<Map<String,Object>> data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
addDataContent();
String[] from = new String[]{"icon_id","name"};
int[] to = new int[]{R.id.iv,R.id.tv};
//上下文、需要显示的数据、布局文件、传入参数名称、对应名称依次所对应的显示处的id
lv.setAdapter(new SimpleAdapter(this,data,R.layout.listview_item,from,to));
}
/**
* 加入数据进入map中
* @param name 图像名字
* @param icon_id 图像id
*/
private void addMapContent(String name,int icon_id){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", name);
map.put("icon_id", icon_id);
data.add(map);
}
/**
* 加入不同的map进入 一个map组Data中
*/
private void addDataContent(){
data = new ArrayList<Map<String,Object>>();
addMapContent("云彩",R.drawable.cloud);
addMapContent("地球",R.drawable.earth);
addMapContent("阳光",R.drawable.sun);
addMapContent("树木",R.drawable.tree);
addMapContent("yline",R.drawable.yline);
addMapContent("Yuki",R.drawable.yuki);
}
}
注释:
SimpleArray(); 中
this : 当前的activity环境参数
data : 待传入的List数据
R,layout.listview_item: 每一个item对应的布局文件
from : 传入数据的代号,也就是关键字key
to : 传输数据对应的id
//activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
//listview_item
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/iv"
android:layout_width="116.6dp"
android:layout_height="76.8dp"/>
<TextView
android:id="@+id/tv"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:textColor="#00ffff"/>
</RelativeLayout>
效果图:
SimpleAdapter简单排列 代码链接 (可直接运行):
http://pan.baidu.com/s/1eQzRu0q
参考网络文献:
无,个人看的视频教程