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日