1, MainActivity.java
package com.myadapter;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//声明一个 ListView
ListView listview = newListView(this);
//定义数组 数组内容是 HashMap
ArrayList> list=new ArrayList>();
//每一个HashMap 对应ListView 中 每一个 item 的数据
HashMapmap=new HashMap();
map.put("Image", R.drawable.star);
map.put("Text1", "周杰伦");
map.put("Text2", "菊花台");
map.put("Button", "更多");
list.add(map);
map=null;
map=new HashMap();
map.put("Image", R.drawable.ic_menu_send);
map.put("Text1", "邓丽君");
map.put("Text2", "在水一方");
map.put("Button", "更多");
list.add(map);
map=null;
map=new HashMap();
map.put("Image", R.drawable.star);
map.put("Text1", "蔡琴");
map.put("Text2", "恰似你的温柔");
map.put("Button", "更多");
list.add(map);
//适配器 绑定数据
SimpleAdapter adapter=new SimpleAdapter(
this, //上下文
list, //要绑定的数据
R.layout.item_layout, //每一个 item 的布局
new String[]{"Text1", "Text2", "Button", "Image"}, //HashMap 中的 键名
new int[]{ R.id.text1, R.id.text2, R.id.button,R.id.image})//分别对应 item 中控件 id,与上一个参数 的键名一一上下对应
{
//在这个重写的函数里设置 每个 item 中按钮的响应事件
@Override
public View getView(int position, View convertView,ViewGroupparent) {
final int p=position;
final View view=super.getView(position, convertView, parent);
Button button=(Button)view.findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//警告框的写法
new AlertDialog.Builder(MainActivity.this)
.setTitle("More")
.setMessage("你选中了"+String.valueOf(p))
.setPositiveButton("确定", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
setTitle("点击了对话框上的确定按钮");
}
})
.setNeutralButton("中立" ,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton){
setTitle("点击了对话框上的中立按钮");
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton){
setTitle("点击了对话框上的取消按钮");
}
})
.create()
.show();
}
});
return view;
}
};
//绑定适配器
listview.setAdapter(adapter);
//设置背景颜色选择器
listview.setSelector(R.drawable.on_item_selected);
//设置焦点响应问题 同时要将 item 中的焦点 focusable 设置为 false
listview.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
//设置 item 的监听事件
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView