`

(转)view的gettag和settag

阅读更多
写一个自定义的Adapter用来绑定ListView,在重写getView的时候发现网上参考代码有用到setTag()和getTag()两个函数,百度找不到答案,google一搜就知道了,:P

View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。

可以用在多个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;    
            }    
        }    
   
    }    
   
}  



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/herryz/archive/2011/02/18/6193844.aspx
分享到:
评论

相关推荐

    android setTag()和getTag()的使用

    在Android开发中,`setTag()` 和 `getTag()` 是两个非常重要的方法,它们主要用于对象的标记和数据存储。这两个方法存在于View类中,因此几乎所有的Android视图组件(如Button、TextView、ImageView等)都可以使用。...

    Android开发 -- setTag的妙用和The key must be an application-specific resource id 异常

    在Android开发中,`setTag()` 是一个非常实用的方法,它允许开发者在 `View` 对象中存储自定义的数据,这对于优化性能和传递参数有着重要的作用。本文将深入探讨 `setTag()` 的使用方法,以及如何解决 "The key must...

    android中使用tag的例子2

    // 泛型版setTag和getTag view.setTag(R.id.my_tag, myObject); MyObject myObject = (MyObject) view.getTag(R.id.my_tag); ``` `Tag`还可以用于标识和区分不同的组件。比如,当一个Activity中有多个相似的按钮时...

    Android 同时setTag两次保存多种值的示例代码

    在Android开发中,`setTag()` 和 `getTag()` 方法是View类中非常实用的工具,它们允许开发者在不创建额外对象的情况下存储和检索数据。这些方法尤其在处理视图复用,比如在ListView或RecyclerView中,对于节省内存和...

    Android setTag方法的key问题解决办法

    在Android开发中,`setTag`方法是一个非常实用的功能,它允许开发者为View对象附加额外的信息,这些信息可以在稍后通过`getTag`方法获取。然而,当涉及到使用键值对(key-value pair)来存储多个数据时,可能会遇到...

    SRV1.2项目,参考View的渲染

    此外,`setTag()`和`getTag()`方法可以用来存储和检索附加数据,这对于实现特定功能或者区分不同的View实例非常有用。 在SRV1.2项目中,可能还涉及到了自定义View的开发。自定义View通常需要重写`onDraw()`方法,...

    Android ListView 点击单选State

    接下来,我们可以在Adapter中利用View的`setTag()`和`getTag()`方法来存储和检索每个条目的选中状态。`setTag()`可以将任何对象绑定到View,而`getTag()`则用来获取之前设置的对象。例如,我们可以在`getView()`方法...

    Android中ListView适配器中的view重用和接口回调

    `convertView.setTag()`和`convertView.getTag()`用于存储和恢复ViewHolder对象。 接下来,我们谈谈接口回调。在ListView中,我们经常需要在用户与列表项交互时执行某些操作,如点击事件。这时,我们可以定义一个...

    ListView保持在列表的顶部固定View 案例分析 源码.zip

    因此,我们的目标是使特定的View在滚动时始终保持在顶部,即使其他View被复用和移动。 要实现这个功能,我们需要自定义一个ListView的Adapter,例如继承自BaseAdapter。在Adapter中,我们需要为每个列表项创建一个...

    Android高级应用源码-android-flip 类似Flipboard翻转动画的实现.zip

    这可能涉及到`setTag`和`getTag`方法来存储和获取状态信息,或者使用其他数据结构来管理这些状态。 5. **监听器和回调**: 为了在翻转动画开始、结束或者在特定阶段触发某些操作,`FlipImageView`可能包含了一些...

    自定义view对话框

    在Android开发中,自定义`View`对话框是一种常见的需求,尤其当系统默认的`AlertDialog`无法满足我们对界面布局和交互的个性化要求时。本文将深入探讨如何创建一个自定义`View`对话框,以及如何实现不同类型的列表项...

    listview中的单选按钮多选按钮

    viewHolder = (ViewHolder) view.getTag(); } viewHolder.radioButton.setId(position); viewHolder.radioButton.setOnCheckedChangeListener(null); // 防止重复点击事件 viewHolder.radioButton.setChecked...

    list view android

    viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.textView.setText(dataList.get(position)); // 设置其他视图属性... return convertView; } ``` ### 性能优化 1. **复用convertView**:...

    android拖动控件,解决回到原点

    viewHolder = (ViewHolder) convertView.getTag(); } // 从数据模型中获取当前位置 int savedLeft = getItemPosition(position).getLeft(); int savedTop = getItemPosition(position).getTop(); // 设置...

    android的tag代码实现

    在Android开发中,"tag"是一个非常重要的概念,它用于标识和组织应用程序中的对象,比如View、Activity或者Intent。Tag可以附加在各种组件上,帮助开发者在代码中追踪和管理这些组件,尤其在调试和日志记录时非常...

    android面试

    `ViewHolder`通过`View`的`setTag()`和`getTag()`方法与视图关联,提高了查找效率。 3. **LayoutInflater的使用**: - `LayoutInflater`是用于动态加载布局的工具,它可以将XML布局文件转换为View对象。获取`...

    Android代码-一个封装的SuperAdapter

    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中设置tag

    在Android中,Tag是作为一个字符串键值对存储在View对象的`setTag()`和`getTag()`方法中。它可以是任何类型的数据,但通常以字符串形式存在,因为字符串是最通用且易于理解和检索的。 **Tag的主要用途:** 1. **...

    ViewHolder超级简洁写法

    通过复用已创建的View,可以避免频繁的查找和创建新View,从而提高ListView的滚动流畅性。 首先,我们需要创建一个ViewHolder类,它持有与ListView项相关的View对象。例如: ```java public static class ...

Global site tag (gtag.js) - Google Analytics