`

关于View::setTag()跟getTag()

 
阅读更多

写一个自定义的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;     
            }     
        }     
    
    }     
    
}   
 
分享到:
评论

相关推荐

    android setTag()和getTag()的使用

    在阅读博客“android setTag()和getTag()的使用”(http://blog.csdn.net/yelangjueqi/article/details/9666037)时,你可以找到更多关于这两个方法的实际应用和深入解析。通过实践和理解这些知识,你的Android开发...

    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开发 -- setTag的妙用和The key must be an application-specific resource id 异常

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

    android中使用tag的例子2

    首先,`Tag`的基本用法是在创建或者获取View时通过`setTag()`和`getTag()`方法进行设置和读取。例如,你可能在一个ListView中,为每个列表项设置一个唯一的`Tag`,这样在点击事件处理中,可以通过`getTag()`快速获取...

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

    android在设计View类时,为了能储存一些辅助信息,设计一个一个setTag/getTag的方法。这让我想起在Winform设计中每个Control同样存在一个Tag。 今天要说的是我最近学习android遇见的setTag的坑。一般情况下我们只...

    为图片添加标签

    当我们为ImageView设置tag时,可以是字符串、整数、自定义对象等,然后在需要的时候通过`getTag()`方法获取它。 以下是几种在Android中为ImageView添加标签的方法: 1. **直接设置Tag**:使用`setTag()`方法可以...

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

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

    应用源码之TestListViewItem.zip

    - 使用setTag()和getTag()方法将数据对象与View关联,或者使用ButterKnife、DataBinding等库实现数据绑定。 6. **优化ListView**: - 使用ViewHolder模式,缓存Item的View,减少findViewById()的调用次数,提高...

    list view android

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

    自定义view对话框

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

    Android ListView 点击单选State

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

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

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

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

    headerViewHolder = (HeaderViewHolder) convertView.getTag(); } // 设置头部View的内容 ... return convertView; } else { // 创建或复用正常的列表项View ... } } ``` 接下来,我们需要处理ListView的...

    listview中的单选按钮多选按钮

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

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

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

    android中设置tag

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

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

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

    ListView中item有两个按钮增加和减少

    ItemData itemData = (ItemData) view.getTag(); itemData.setQuantity(itemData.getQuantity() + 1); adapter.notifyDataSetChanged(); } public void onDecreaseClick(View view) { ItemData itemData = ...

    listview 里面加radiobutton 单选操作

    viewHolder = (ViewHolder) view.getTag(); } viewHolder.radioButton.setText(dataList.get(position)); viewHolder.radioButton.setOnCheckedChangeListener(null); // 防止重复点击时选中状态混乱 ...

Global site tag (gtag.js) - Google Analytics