- 浏览: 506415 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (200)
- java基础 (30)
- ajax (19)
- 乱写 (5)
- groovy (2)
- db (8)
- gwt (0)
- jee (2)
- 我关注的开源 (1)
- RIA AIR (1)
- spring (11)
- lucene (0)
- 工具 (10)
- 百科 (2)
- linux (6)
- android (40)
- 移动开发 (21)
- 代码片断 (15)
- tomcat (1)
- css (1)
- html5 (2)
- jquery (2)
- playframework (3)
- web (2)
- nio (3)
- design (1)
- nosql (3)
- 日志 (12)
- mysql (4)
- 图表 (1)
- python (3)
- ruby (1)
- git (0)
- hibernate (1)
- springboot (1)
- guava (1)
- mybatis (0)
- 工作问题 (3)
- php (1)
最新评论
-
linzm1990:
踩了很多坑啊。。。。
hibernate @Nofound 与@ManyToOne fetch lazy的问题 -
Ccccrrrrrr:
...
转: Spring boot 文件上传 -
rmzdb:
兄弟,你这个东西,在ie内核的浏览器,貌似不识别 文件名
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
107x:
问题解决了,谢谢!
工作问题:http下载文件,中文文件名在firefox下乱码问题 -
klxqljq:
额鹅鹅鹅
android布局实现头尾固定, 中间多余内容可以滚动
View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。
可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。
在写listView 时候要重写BaseAdapter
需要在每个item都加上button 点击button做相应操作
这个时候需要button里面设置下 这行的属性button.setTag(item.user.name);
然后处理button事件。
这个东西在一些需要用到Adapter自定控件显示方式的时候非常有用
Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用
你可以看看android的源码,特别有listview的,你就会发现这个函数很多时候有妙用!呵呵!
我的一点理解是,绑定数据,特别是绑定数据到view。而且可以用getTag()取得,很方便,而且是任意类型的数据,真的很酷。
在实例BaseAdapter()的getView(position, convertView, par)里有用到。convertView这里会用到setTag() getTag()。就可以生成convertView并复用里面的widget
一直觉得这个东西没啥用setTag(),不过只要能用上 就是比较巧的了
在一个程序中呢 我有好多个button 我想点击一个出现1 点击第二个出现2
上面的代码效率不高 而且 无论点击哪一个都会出现21 当然这是我逻辑错误那怎么实现呢
这样呢就实例话一个listener,同时通过tag传值就不是每一个实例都做了
可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button1 = (Button) findViewById(R.id.Button01); Button button2 = (Button) findViewById(R.id.Button02); Button button3 = (Button) findViewById(R.id.Button03); Button button4 = (Button) findViewById(R.id.Button04); MyListener listener = new MyListener(); button1.setTag(1); button1.setOnClickListener(listener); button2.setTag(2); button2.setOnClickListener(listener); button3.setTag(3); button3.setOnClickListener(listener); button4.setTag(4); button4.setOnClickListener(listener); } public class MyListener implements View.OnClickListener { @Override public void onClick(View v) { int tag = (Integer) v.getTag(); switch (tag){ case 1: System.out.println("button1 click"); break; case 2: System.out.println("button2 click"); break; case 3: System.out.println("button3 click"); break; case 4: System.out.println("button4 click"); break; } } } }
在写listView 时候要重写BaseAdapter
需要在每个item都加上button 点击button做相应操作
这个时候需要button里面设置下 这行的属性button.setTag(item.user.name);
然后处理button事件。
这个东西在一些需要用到Adapter自定控件显示方式的时候非常有用
Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView == null){ LayoutInflater inflater = (LayoutInflater) mWidgetsSwitchApp .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.app_gallery_item, null); vh = new ViewHolder(); vh.view1 = (ImageView) convertView.findViewById(R.id.view1); vh.view2 = (ImageView) convertView.findViewById(R.id.view2); vh.view3= (ImageView) convertView.findViewById(R.id.view3); vh.view4 = (ImageView) convertView.findViewById(R.id.view4); convertView.setTag(vh); }else{ vh = (ViewHolder) convertView.getTag(); } //其他的代码可以直接使用 vh.view1、vh.view2、vh.view3 、vh.view4 }
你可以看看android的源码,特别有listview的,你就会发现这个函数很多时候有妙用!呵呵!
我的一点理解是,绑定数据,特别是绑定数据到view。而且可以用getTag()取得,很方便,而且是任意类型的数据,真的很酷。
在实例BaseAdapter()的getView(position, convertView, par)里有用到。convertView这里会用到setTag() getTag()。就可以生成convertView并复用里面的widget
一直觉得这个东西没啥用setTag(),不过只要能用上 就是比较巧的了
在一个程序中呢 我有好多个button 我想点击一个出现1 点击第二个出现2
for (int i = 0; i < 20; i++) { cells[i] = (ImageView) findViewById(cellIDs[i]); cells[cellnumber++].setOnClickListener(new OnClickListener() { public void onClick(View v){ cellClicked(cellnumber, v); } }); }
上面的代码效率不高 而且 无论点击哪一个都会出现21 当然这是我逻辑错误那怎么实现呢
OnClickListener listener = new OnClickListener() { public void onClick(View v){ int cellId = (Integer) v.getTag(); cellClicked(cellId, v); } } View v; for (int i = 0; i < 20; i++){ v = findViewById(cellIDs[i]); v.setOnClickListener(listener); v.setTag(i); }
这样呢就实例话一个listener,同时通过tag传值就不是每一个实例都做了
发表评论
-
android listview
2012-07-13 17:37 930ListView与Button的共存问题解决, 解决在list ... -
米聊所采用的一些技术
2012-01-31 09:52 2085nginx upstream fallback 设置 up ... -
演化理解 Android 异步加载图片
2011-11-09 09:55 902LinearLayout 布局,其下放了5个ImageView ... -
android常用颜色
2011-11-07 08:49 1284常用颜色值: 可以完美的颜色比对的网站: http://w ... -
dialog,activity 屏蔽Home键详解
2011-11-03 09:39 0http://www.iteye.com/topic/1116 ... -
android SlidingDrawer example
2011-11-03 09:35 0http://disanji.net/2010/12/16/a ... -
play flash swf file in android with webview
2011-11-03 09:34 0http://androidforums.com/applic ... -
AnimationDrawable 在Dialog中不能动画的原因(转)
2011-11-03 09:33 1303原来在dialog的onCreate onStart调用的时候 ... -
Free Android UI library & component roundup
2011-11-03 09:27 1150http://java.dzone.com/articles/ ... -
Android Fundamentals: Scheduling Recurring Tasks
2011-11-03 09:26 984http://mobile.tutsplus.com/tuto ... -
Android ListView pull up to refresh 改造(转)
2011-11-03 09:25 2100转自: http://dengyin2000.iteye.co ... -
Android中dp和px之间进行转换
2011-11-03 09:02 2268在xml布局文件中,我们既可以设置px,也可以设置dp(或者d ... -
使用getIdentifier()获取资源Id
2011-10-31 12:15 8461使用getIdentifier()获取资源Id int i ... -
ListView的长按菜单___源码分析
2011-10-24 09:28 2598ListView的长按菜单___源码分析 Android的l ... -
让你的Android程序兼容多种分辨率
2011-10-24 09:20 1029http://www.android123.com.cn/an ... -
andr菜单
2011-10-24 09:18 1212Android 菜单 菜单分为两种:系统菜单和上下文菜单。 ... -
Android 长按显示上下文菜单代码
2011-10-24 09:14 5943Android 长按显示上下文 ... -
Android Asynchronous Http Client
2011-10-19 10:27 2910转自: loopj.com/android-async-htt ... -
Android canvas.drawBitmap实现透明效果
2011-09-02 14:22 23441以下是针对,canvas.drawBitmap方法实施透明效 ... -
android资源别名
2011-08-30 14:24 2324详细请参考: http://developer.android ...
相关推荐
在实际应用中,`setTag()` 和 `getTag()` 常常被用于以下场景: 1. **数据绑定**:当视图需要显示与之相关的数据时,可以将数据设为Tag,然后在适当时机通过 `getTag()` 获取并使用。 2. **缓存计算结果**:对于...
You won't need to write ViewHolder, createView, setTag, getTag, and confuse how to setOnItemClickListener to RecyclerView, etc. The only thing you really need to do is that implement a method onBind...
android在设计View类时,为了能储存一些辅助信息,设计一个一个setTag/getTag的方法。这让我想起在Winform设计中每个Control同样存在一个Tag。 今天要说的是我最近学习android遇见的setTag的坑。一般情况下我们只...
首先,`Tag`的基本用法是在创建或者获取View时通过`setTag()`和`getTag()`方法进行设置和读取。例如,你可能在一个ListView中,为每个列表项设置一个唯一的`Tag`,这样在点击事件处理中,可以通过`getTag()`快速获取...
在Android开发中,`setTag()` 是一个非常实用的方法,它允许开发者在 `View` 对象中存储自定义的数据,这对于优化性能和传递参数有着重要的作用。本文将深入探讨 `setTag()` 的使用方法,以及如何解决 "The key must...
此外,`setTag()`和`getTag()`方法可以用来存储和检索附加数据,这对于实现特定功能或者区分不同的View实例非常有用。 在SRV1.2项目中,可能还涉及到了自定义View的开发。自定义View通常需要重写`onDraw()`方法,...
总结来说,`setTag()` 和 `getTag()` 提供了一种轻量级的数据存储机制,尤其是在处理视图复用和数据传递时,它们能够显著提升应用的性能和代码的可读性。在实际编程中,开发者需要根据需求选择合适的`key`,确保数据...
如果需要更新头部或尾部,需要手动调用其setTag和getTag方法,或者重新添加头部和尾部。 通过以上步骤,我们就成功地在ListView中添加了头部和尾部布局。这种方式不仅使ListView功能更加丰富,也能让应用的界面设计...
在某些应用场景中,我们可能希望在用户滚动列表时,某些特定的View始终保持在列表的顶部,比如在新闻应用中,当用户滚动时,天气预报或者广告栏总是固定在顶部。这种效果可以通过自定义Adapter和Header来实现,我们...
`convertView.setTag()`和`convertView.getTag()`用于存储和恢复ViewHolder对象。 接下来,我们谈谈接口回调。在ListView中,我们经常需要在用户与列表项交互时执行某些操作,如点击事件。这时,我们可以定义一个...
接下来,我们可以在Adapter中利用View的`setTag()`和`getTag()`方法来存储和检索每个条目的选中状态。`setTag()`可以将任何对象绑定到View,而`getTag()`则用来获取之前设置的对象。例如,我们可以在`getView()`方法...
在Android开发中,自定义`View`对话框是一种常见的需求,尤其当系统默认的`AlertDialog`无法满足我们对界面布局和交互的个性化要求时。本文将深入探讨如何创建一个自定义`View`对话框,以及如何实现不同类型的列表项...
在Android开发中,ListView是一种非常...然而,ListView仍然是许多现有应用的核心组件,理解它的运作机制和优化技巧对Android开发者来说仍然至关重要。在实际项目中,开发者可以根据需求选择ListView或者RecyclerView。
可以使用`setTag`和`getTag`方法来存储和检索状态信息,或者创建不同的`Drawable`资源来表示不同状态的背景。 6. 倾斜效果: - 倾斜效果通常通过改变View的`rotationX`和`rotationY`属性实现。结合`translationZ`...
viewHolder = (ViewHolder) convertView.getTag(); } // 获取当前项的数据 ApplicationInfo app = getItem(position); viewHolder.appLabel.setText(app.loadLabel(getPackageManager())); viewHolder.app...
在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。...提供的源码实例应包括具体的Adapter实现、ListView布局以及可能的对话框/PopWindow布局,帮助开发者更好地理解和应用这些概念。
可以使用setTag()和getTag()方法存储数据,或者实现`Parcelable`接口进行序列化操作。 5. **动画效果**: Android提供了多种动画实现方式,如属性动画(Property Animation)、补间动画(Tween Animation)和帧动画...
在Android开发中,"tag"是一个非常重要的概念,它用于标识和组织应用程序中的对象,比如View、Activity或者Intent。Tag可以附加在各种组件上,帮助开发者在代码中追踪和管理这些组件,尤其在调试和日志记录时非常...
- 使用setTag()和getTag()方法将数据对象与View关联,或者使用ButterKnife、DataBinding等库实现数据绑定。 6. **优化ListView**: - 使用ViewHolder模式,缓存Item的View,减少findViewById()的调用次数,提高...