android listview适配器里区分不同按钮的点击事件

来源:互联网 发布:淘宝买家秀 情趣福利 编辑:程序博客网 时间:2024/05/17 10:27
一、适配器 ListItemClickAdapter
public class ListItemClickAdapter extends BaseAdapter {private Context contxet;private ArrayList<String> list;private ListItemClickHelp callback;private LayoutInflater mInflater;public ListItemClickAdapter(Context contxet, ArrayList<String> list,ListItemClickHelp callback) {this.contxet = contxet;this.list = list;this.callback = callback;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(int position, View convertView, final ViewGroup parent) {mInflater = (LayoutInflater) contxet.getSystemService(Context.LAYOUT_INFLATER_SERVICE);ViewHolder holder;if (convertView == null) {convertView = mInflater.inflate(R.layout.block_list_item, null);holder = new ViewHolder();holder.mAd_tv_show = (TextView) convertView.findViewById(R.id.ad_tv_show);holder.mAd_btn_one = (Button) convertView.findViewById(R.id.ad_btn_one);holder.mAd_btn_two = (Button) convertView.findViewById(R.id.ad_btn_two);convertView.setTag(holder);} else {holder = (ViewHolder) convertView.getTag();}holder.mAd_tv_show.setText(list.get(position));final View view = convertView;final int p = position;final int one = holder.mAd_btn_one.getId();holder.mAd_btn_one.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {callback.onClick(view, parent, p, one);}});final int two = holder.mAd_btn_two.getId();holder.mAd_btn_two.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {callback.onClick(view, parent, p, two);}});return convertView;}public static class ViewHolder {TextView mAd_tv_show;Button mAd_btn_one;Button mAd_btn_two;}}

二、接口 ListItemClickHelp

/** * listview点击事件接口 * @author Alan * */public interface ListItemClickHelp {void onClick(View item, View widget, int position, int which);}

三、界面 MainActivity

public class MainActivity extends Activity implements ListItemClickHelp {private TextView mtv_show;private ListView mlv_show;private ArrayList<String> mdata = new ArrayList<String>();private ListItemClickAdapter madapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initLayout();}private void initLayout() {mdata.add("One");mdata.add("Two");mdata.add("Three");mdata.add("Four");mdata.add("Five");mdata.add("菠萝");mdata.add("苹果");mdata.add("葡萄");mdata.add("哈密瓜");mdata.add("香蕉");mtv_show = (TextView) this.findViewById(R.id.tv_show);mlv_show = (ListView) this.findViewById(R.id.lv_show);madapter = new ListItemClickAdapter(this, mdata, this);mlv_show.setAdapter(madapter);mlv_show.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapter, View view,int position, long arg3) {mtv_show.setText(mdata.get(position));}});}@Overridepublic void onClick(View item, View widget, int position, int which) {switch (which) {case R.id.ad_btn_one:mtv_show.setText(mdata.get(position) + "Btn one");break;case R.id.ad_btn_two:mtv_show.setText(mdata.get(position) + "Btn two");break;default:break;}}}

四、效果图


五、下载地址:http://download.csdn.net/detail/shi508181017/7060961


1 0
原创粉丝点击