View的setTag()和getTag()方法的使用

本文介绍了在Android开发中,如何使用View的setTag()和getTag()方法来为子视图绑定Object对象,用于标识和区分不同视图或为相同视图设置不同事件。通过示例代码展示了如何在点击监听器中获取并使用这些标签,以实现特定的功能,如树形结构的展开和收缩操作。
摘要由CSDN通过智能技术生成
view的setTag()和getTag()方法的使用
今天修改树的时候,有一点点感受,所以记录下来。

View的setTag和getTag方法可以给view的子控件绑定一个Object对象。我自己理解的——呵呵

tag顾名思义就是标签的意思,给view的子控件添加一个标签,可以根据标签判断给view不同的子控件,或者view相同的子控件添加不同的触发事件。

部分代码:

TextView labelText = new TextView(parent.getContext());
			labelText.setTag(treeNode); //绑定一个Object对象

			labelText.setId(2);
			labelText.setText(label);
                        labelText.setOnClickListener(imageClickListener);
              View.OnClickListener imageClickListener = new View.OnClickListener(){
		public void onClick(View v) {
			final Map<String, Object> treeNodePosition = (Map<String, Object>)v.getTag();//获取所绑定的Object
			Log.i("tree","treeNodePosition"+treeNodePosition);
			final int stage = (Integer)treeNodePosition.get("stage");
			Log.i("tree","treeNodePosition--stage="+treeNodePosition.get("stage"));
			final int position = (Integer)treeNodePosition.get("position");
			Log.i("tree","treeNodePosition--position="+treeNodePosition.get("position"));
			
			if(treeNodePosition.containsKey("ns")){
				Log.i("tree","treeNodePosition--ns="+treeNodePosition.get("ns"));
				if(treeNodePosition.get("expanded").equals("1")){
					Log.i("tree","treeNodePosition--expanded="+treeNodePosition.get("expanded"));
					removeChildTreeNodes(String.valueOf(treeNodePosition.get("id")));
					treeNodePosition.put("expanded", "0");
					for(int i = 0; i< treeNodes.size(); i++){
						Map<String, Object> tempTreeNode = treeNodes.get(i);
						tempTreeNode.put("position", i);
					}
					setTreeNodes(treeNodes);
					notifyDataSetChanged();
					return;
				}
			}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值