android开发-listview的用法
/*注意:1继承了ListActivity,ListActivity和普通的Activity没有太大的差别,
- 不同就是对显示ListView做了许多优化,方便显示而已
*2使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行
*/
第一步:编写布局文件main.xml,添加一个imageview和textview。具体代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/image"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/icon"
android:paddingLeft="10dp" />
<TextView android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp" />
</LinearLayout>
第二步:修改ListView03.java,添加listview的相关操作,具体代码如下
View Code
package cn.shaoyangjiang.com;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;
public class Listview03Activity extends ListActivity {
private static String\[\] aa = new String\[\]{"hello world","this is my listview",
"邵洋江加油","你会成功的","you will success"};
private static int\[\] draw = new int\[\]{R.drawable.brick,R.drawable.calendar,R.drawable.eoemarket
,R.drawable.ic_launcher,R.drawable.terminater,R.drawable.whitesociety};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//每个list里面放的都是MAP,map里面放的是键值对,这里指图片和文字
List<Map<String, Object>> Items = new ArrayList<Map<String, Object>>();
//把该显示的内容放到list中
for (int i = 0; i < aa.length; i++)
{
Map<String, Object> item = new HashMap<String, Object>();
item.put("image", draw\[i\]);
item.put("textview1", aa\[i\]);
Items.add(item);
}
//构建适配器Adapter,将数据与显示数据的布局页面绑定
SimpleAdapter simpleAdapter = new SimpleAdapter(this, Items,
R.layout.main, new String\[\]{ "textview1", "image" },
new int\[\]{ R.id.textview1, R.id.image});
//通过setAdapter()方法把适配器设置给ListView
setListAdapter(simpleAdapter);
}
}
如果还想单机每个listview的item出现响应,可以使用下面这个方法
View Code
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//强制转换为ListView
ListView lv =(ListView)parent;
//得到item的位置
HashMap<String,Object> item = (HashMap<String,Object>)lv.getItemAtPosition(position);
//显示
Toast.makeText(MainActivity.this, item.get("listview1").toString(), 1).show();
}
});
效果图:
如果还想深入了解,下面的链接不错
Android之Adapter用法总结:http://kb.cnblogs.com/a/2328334/