首页>代码>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 LV112020年12月29日
月亮月亮星星星星星星
bbaqqq LV42020年11月20日
月亮
mym0207 LV12020年7月27日
星星
sylviay LV112020年6月10日
月亮月亮星星星星星星
Tuan5555 LV102020年1月10日
月亮月亮星星星星
wangshihua LV192019年5月10日
太阳星星星星星星
金陵小夜白 LV12019年1月10日
星星
gggggggg123456 LV32018年12月19日
星星星星星星
2901545739 LV12018年9月13日
星星
7324324234 LV142018年7月24日
月亮月亮月亮星星星星
最近浏览更多
cus112 LV32月24日
星星星星星星
caoxin032月13日
暂无贡献等级
robin1982 LV21月21日
星星星星
11220011 LV21月13日
星星星星
ffengm1月3日
暂无贡献等级
1294862613 LV112020年12月28日
月亮月亮星星星星星星
taotaons LV82020年12月27日
月亮月亮
ysp111 LV12020年12月22日
星星
yanshu LV22020年12月20日
星星星星
No_name2020年12月11日
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友