最近作了一個android項目,在每個ListView的Item中還有兩個RelativeLayout控件,須要對這兩個RelativeLayout控件設置單擊事件,解決以下:
只貼關鍵代碼了
//ListView變量
private ListView lv_pcorder = null;
//須要傳遞的變量
List list1 = new ArrayList();
List list2 = new ArrayList();
Map pics = Util.getAnecdoteSeven();
Map picid = new HashMap();
//配置BasicAdapter
lv_pcorder = (ListView) findViewById(R.id.lv_pcorder);
lv_pcorder.setAdapter(new PicCenterListApdapter(PicCenterList.this, list1, list2, pics, picid));
//BaseAdapter實現類
public class PicCenterListApdapter extends BaseAdapter {
private Context context; private List list1; private List list2; private Map map; private Map picid; public PicCenterListApdapter(Context context, List list1, List list2, Map map, Map picid) { this.context = context; this.list1 = list1; this.list2 = list2; this.map = map; this.picid = picid; } @Override public int getCount() { return list1.size(); } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh = null; if (convertView == null) { vh = new ViewHolder(); LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(R.layout.pcorderlist, null); vh.lin0 = (RelativeLayout) convertView.findViewById(R.id.lin0); vh.lin0.setOnClickListener(new PCount(position)); //設置單擊事件 vh.lin2 = (RelativeLayout) convertView.findViewById(R.id.lin2); //設置單擊事件 vh.lin2.setOnClickListener(new COrder(position)); //設置單擊事件 vh.lin3 = (RelativeLayout) convertView.findViewById(R.id.lin3); vh.lin3.setOnClickListener(new COrder(position)); vh.timeitem = (TextView) convertView.findViewById(R.id.timeitem); vh.timeitem.setText(list1.get(position)); vh.countitem = (TextView) convertView.findViewById(R.id.countitem); vh.countitem.setText(list2.get(position)); if (map.containsKey(list1.get(position))) { vh.smallpic = (ImageView) convertView.findViewById(R.id.smallpic); vh.smallpic.setImageResource(picid.get(map.get(list1.get(position)).getAddress())); vh.title = (TextView) convertView.findViewById(R.id.title); vh.title.setText(map.get(list1.get(position)).getTitle()); vh.picintro = (TextView) convertView.findViewById(R.id.picintro); vh.picintro.setText(" "+Util.getString(map.get(list1.get(position)).getContent())+"...."); } convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } return convertView; } //單擊事件實現 class COrder implements OnClickListener { public int position; public COrder(int p) { position = p; } @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(context, CountOrder.class); Bundle b = new Bundle(); b.putString("datatime", list1.get(position)); intent.putExtras(b); context.startActivity(intent); } } //單擊事件實現 class PCount implements OnClickListener { public int position; public PCount(int p) { position = p; } public void onClick(View v) { Intent intent = new Intent(); intent.setClass(context, PicCenterItem.class); Bundle b = new Bundle(); b.putString("datatime", list1.get(position)); intent.putExtras(b); context.startActivity(intent); } } public final class ViewHolder { public RelativeLayout lin0; public RelativeLayout lin2; public RelativeLayout lin3; public TextView timeitem; public TextView countitem; public ImageView smallpic; public TextView title; public TextView picintro; } }