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

2017/06/23 19:15
阅读数 5
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;
				}
			}


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部