首页>代码>Android中ListView简单实例>/Adapter/src/com/lol/huixin/control/BaseAdapterActivity.java
package com.lol.huixin.control;

import android.os.Bundle;
import android.util.Log;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class BaseAdapterActivity extends Activity {
	private ListView listView;
	private List<Map<String,Object>> listMap;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_base_adapter);
		listView=(ListView)findViewById(R.id.listView);
		listMap=getData();
		MyAdapter adapter=new MyAdapter(getApplicationContext());
		listView.setAdapter(adapter);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.base_adapter, menu);
		return true;
	}

	private List<Map<String, Object>> getData() {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("title", "G1");
		map.put("info", "google 1");
		map.put("img", R.drawable.a1);
		list.add(map);
		
		map = new HashMap<String, Object>();
		map.put("title", "G2");
		map.put("info", "google 2");
		map.put("img", R.drawable.a2);
		list.add(map);
		
		map = new HashMap<String, Object>();
		map.put("title", "G3");
		map.put("info", "google 3");
		map.put("img", R.drawable.a3);
		list.add(map);
		
		return list;
	}
	
	public static class ViewHolder{
		public ImageView img;
		public TextView title;
		public TextView info;
		public Button viewBtn;
	}
	
	public class MyAdapter extends BaseAdapter{
		public LayoutInflater myInflater;

		public MyAdapter(Context context){
			////根据context上下文加载布局,这里的是getApplicationContext()本身,即this
			this.myInflater=LayoutInflater.from(context);
		}
		
		@Override
		public int getCount() {
			//在此适配器中所代表的数据集中的条目数
			return listMap.size();
		}

		@Override
		public Object getItem(int position) {
			//获取数据集中与指定索引对应的数据项
			return position;
		}

		@Override
		public long getItemId(int position) {
			//获取在列表中与指定索引对应的行id
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			ViewHolder holder=null;
			if(convertView==null){
				//如果缓存convertView为空,则需要创建View
				holder=new ViewHolder();
				//这句话很关键
				convertView=myInflater.inflate(R.layout.list_items, null);
				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.viewBtn=(Button)convertView.findViewById(R.id.view_btn);
				//将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag
				convertView.setTag(holder);
			}else{
				holder=(ViewHolder)convertView.getTag();
			}
			Log.i("positon",String.valueOf(position)+"\t"+listMap.get(position).get("title"));
			holder.img.setBackgroundResource((Integer)listMap.get(position).get("img"));
			holder.title.setText((String)listMap.get(position).get("title"));
			holder.info.setText((String)listMap.get(position).get("info"));
			holder.viewBtn.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					showInfo();                
				}
			});
			return convertView;
		}
	}
	
	/**
	* listview中点击按键弹出对话框
	*/
	public void showInfo(){
		new AlertDialog.Builder(this).setTitle("我的listview").setMessage("介绍...").setPositiveButton("确定", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface dialog, int which) {}
		}).show();
	}
	
	
}
最近下载更多
1294862613  LV11 2020年12月29日
bbaqqq  LV4 2020年11月20日
mym0207  LV1 2020年7月27日
sylviay  LV11 2020年6月10日
Tuan5555  LV12 2020年1月10日
wangshihua  LV19 2019年5月10日
金陵小夜白  LV1 2019年1月10日
gggggggg123456  LV3 2018年12月19日
2901545739  LV1 2018年9月13日
7324324234  LV14 2018年7月24日
最近浏览更多
暂无贡献等级
yyyyyyzh  LV8 2023年6月11日
小妹妹  LV7 2023年6月9日
倾城之恋1  LV5 2023年5月21日
qazwer11  LV5 2023年5月18日
xiaoqiaothq  LV2 2023年4月2日
362255  LV1 2022年12月28日
yzhszz  LV3 2022年12月27日
1532593037  LV8 2022年6月3日
萌了个乖乖  LV12 2022年5月20日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友