Adapter详解 (三)

2014-11-24 10:26:37 · 作者: · 浏览: 3
ick",(String)mData.get(position).get("title"));
}
public void showInfo(){
new AlertDiolog.Builder(this)
.setTitle("MyListView")
.setMessage(Introduce)
.setPositiveButton("Ensure",new DialogInterface.OnClickListener()
{@Override
public void onClick(DialogInterface dialog,int which){} }).show();
}
}
private final class ViewHolder{
public ImageView img;
public TextView title;
public TextView info;
public Button viewBu;
}
public class MyAdapter extens BaseAdapter{
private LayoutInlfater myInflater;
public MyAdapter(Context context){
this.myInflater=LayoutInflater.from(context);
}
@Override
public int getCount(){
return mDate.size();}
@Override
public long getItemId(int position){
return null;}
@Override
public Object getItmeId(int position){
return 0;}
@Override
public View getview(int position,View convertView,ViewGroup parent){
ViewHolder holder=null;
if(convertView==null){
holder=new ViewHolder();
convertView=mInflater.inflate(R.layout.list,null)
//inflate函数有两个参数--解析界面布局
holder.img=(ImageView)convertView.findViewById(R.id.img);
holder.title=(TextView)convertView.findViewById(R.id.title);
holder.info=(TextView)convertView.findViewById(R.id.info);
holder.viewBu=(TextView)convertView.indViewById(R.id.viewBu);
convertView.setTag(holder);
}else{holder=(ViewHolder)convertViewgetTag();}
holder.img.setBackgroundResounce((Integer)mDate.get(position).get("img"));
holder.title.setText((String)mdata.get(position).get("title"));
holder.info.setText((String)mData.get(position).get("info"));
holder.viewBu.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
showInfo(); }
});

return convertView;
}
}
}
getView()方法有三个参数,int position表示第几行,第几个Item;convertView 表示解析过来的布局,getCount表示列表项的个数。

在使用ExpandabListView组件时,我们必须使用这个Adapter:

ExpandableAdapter:(用于ExpandableListView):

[java]
public class ExpandableListViewTest extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建一个BaseExpandableListAdapter对象
ExpandableListAdapter adapter = new BaseExpandableListAdapter()
{
int[] logos = new int[]
{
R.drawable.p,
R.drawable.z,
R.drawable.t
};
private String[] armTypes = new String[]
{ "神族兵种", "虫族兵种", "人族兵种"};
private String[][] arms = new String[][]
{
{ "狂战士", "龙骑士", "黑暗圣堂", "电兵" },
{ "小狗", "刺蛇", "飞龙", "自爆飞机" },
{ "机枪兵", "护士MM" , "幽灵" }
};
//获取指定组位置、指定子列表项处的子列表项数据
@Override
public Object getChild(int groupPosition, int childPosition)
{
return arms[groupPosition][childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition)
{
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition)
{
return arms[groupPosition].length;
}
private Tex