Android ListView中的item添加按钮点击事件

ListView中的行和行中item的点击监听事件

这里layout中的list_item.xml定义了三个组件,两个文本框一个按钮。实现点击按钮可输出其中一个文本框的内容

ListView的适配器定义

public class RealListAdapter extends BaseAdapter {
	public static int mWidthest = 0;
	
	private LayoutInflater mInflater;

	private Context mContext;
	
	private List listMap;


	
	public final class ListItemView{                

		public TextView mId;
		public TextView mCategory;
		public Button mLocationChage;

    }

	public RealListAdapter(Context context, List listMap) {
		this.mContext = context;
		this.mInflater = LayoutInflater.from(context);
		this.listMap = listMap;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return listMap.size();
	}

	@Override
	public Object getItem(int arg0) {
		// TODO Auto-generated method stub
		return arg0;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(final int position, View convertView, ViewGroup parent) {
		
		ListItemView  listItemView = null;
		if (convertView == null) {
			listItemView = new ListItemView();
			convertView = mInflater.inflate(layout.list_item, null);


			listItemView.mId = (TextView)convertView.findViewById(R.id.id_text);
			listItemView.mCategory = (TextView)convertView.findViewById(R.id.category_text);
			listItemView.mLocationChage = (Button)convertView.findViewById(id.loction_chage);
			convertView.setTag(listItemView);
		} else {
			listItemView = (ListItemView) convertView.getTag();

		}
		
		
		InventoryTagMap map = listMap.get(position);

		//新数据填充
		listItemView.mId.setText(String.valueOf(position + 1));
		listItemView.mCategory.setText(map.mcategory);


		//listview中item添加点击按钮
		listItemView.mLocationChage.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				InventoryTagMap map = listMap.get(position);
				mOnItemChangeListener.onChangeClick(map.mcategory);
			}
		});


		return convertView;

	}

	//变更按钮的监听接口
	public interface onItemChangeListener {
		void onChangeClick(String mcategory);
	}

	private onItemChangeListener mOnItemChangeListener;

	public void setOnItemChangeClickListener(onItemChangeListener mOnItemChangeListener) {
		this.mOnItemChangeListener = mOnItemChangeListener;
	}

MainActivity中调用

定义

private ListView mTagRealList;
private RealListAdapter mRealListAdapter;

调用

mTagRealList = (ListView) findViewById(R.id.list_view);
mRealListAdapter = new RealListAdapter(this, myList);
mTagRealList.setAdapter(mRealListAdapter);
//ListView中行的点击事件
		mTagRealList.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {

				if (mOnItemSelectedListener != null)
					mOnItemSelectedListener.onItemSelected(arg1, arg2, arg3);
                    Toast.makeText(this,"已点",Toast.LENGTH_SHORT).show();

			}

		});


		//ListView item 中的按钮点击事件
		mRealListAdapter.setOnItemChangeClickListener(new RealListAdapter.onItemChangeListener() {
			@Override
			public void onChangeClick(String mcategory) {
				final String nowcategory =mcategoryC;
                Toast.makeText(this,"以获取"+nowcategory,Toast.LENGTH_SHORT).show();

			}
		});

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值