`
lwjshuai
  • 浏览: 14826 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转]android 关于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;    
            }    
        }    
   
    }    
   
}   
分享到:
评论

相关推荐

    android setTag()和getTag()的使用

    android setTag()和getTag()的使用 博客:http://blog.csdn.net/yelangjueqi/article/details/9666037

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

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

    C#编程 WinForm窗体开发 GetTag(源码)

    C#编程 WinForm窗体开发 GetTag(源码)C#编程 WinForm窗体开发 GetTag(源码)C#编程 WinForm窗体开发 GetTag(源码)C#编程 WinForm窗体开发 GetTag(源码)C#编程 WinForm窗体开发 GetTag(源码)C#编程 WinForm窗体开发 ...

    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地址选择器

    import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import android.widget....

    ZhaoLizz#Android-Notes#RecyclerView的回调点击事件1

    RecyclerView点击事件的回调机制当需要用到点击事件发送intent时,必须用回调可以利用 控件.setTag(),view.getTag(),利用vi

    listviewAdapter

    import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class NewsListViewAdapter extends ...

    wzy17419.rar

    viewHolder = (ViewHolder) view.getTag(); } viewHolder.title = (TextView) view.findViewById(R.id.tv_title); viewHolder.time = (TextView) view.findViewById(R.id.tv_time); viewHolder.author = ...

    package com.example.f1_telephone;

    import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.content.ContentResolver; import ...

    SwipeListViewTest项目

    //调用dismiss方法删除该项(这个方法在MainActivity中) mSwipeListView.dismiss(position); } }); String item = getItem(position); holder.mFrontText.setText(item); return convertView; } class ...

    MultilevelTreeList-快速实现Android多级树形列表,由鸿洋多级树形列表demo修改而来。支持ListView、RecyclerView。.zip

    快速实现Android多级树形列表,这个库是在鸿洋多级树形列表demo中修改而来。解决的问题:支持ID为int类型和String类型。支持多级复选框选中,使用只需一行代码。支持动态更新数据并保持原有展开/关闭状态。支持...

    Android ListView 点击单选State

    listview OnItemClickListener 点击事件 设置其为点选状态,可在Adapter 中View 设置Tag ,然后通过getTag,获取当View的状态设值

    TreeRecyclerView

    2.ItemManager新增了setTag.getTag方法,可以通过该方法绑定Activity或者Fragment等对象.在TreeItem可以获取该对象 3.TreeItem新增了init方法,可以做一些初始化设置,比如默认是否展开等等 4.新增了getItemOffsets的...

    osm-common:用于访问OpenStreetMap服务,解析和处理数据的库

    se.kodapan.osm.domain:OsmObject #getId():long #setTag(key, value) #getTag(key)se.kodapan.osm.domain:Node extends OsmObjectse.kodapan.osm.domain:Way extends OsmObjectse.kodapan.osm.domain:Relation ...

    ParallaxViewPager:ViewPager.PageTransformer 接口使用的简单示例,用于将视差效果应用于 android ViewPager 页面更改

    如果要将视差效果应用于 android 页面更改,则需要为每个页面实现转换。 为此,您需要实现接口。 public class ParallaxTransform implements ViewPager . PageTransformer { private float parallaxSpeed = 0.3...

    ListView控件

    实现 ListView 局部刷新 刷新 public View getView(int position, View convertView, ViewGroup parent) { ViewHold viewHold = null; final int position1 = position; if(null == convertView){ viewHold...

    Android ListView 子控件onClick正确获取position的方法

    在实际开发中,我们有时候不仅需要响应ListView的...的控件设置一个tag值,这个tag值就设置为当前这个控件对应的position,然后在点击事件中gettag(),获取这个position 即可: getView()中: holder.layoutSupport.set

    SplideRemoveMenu-滑动删除菜单.zip

     vHolder = (ViewHolder) convertView.getTag();  }  String msg = getItem(position);  vHolder.content.setText(msg);  final ViewHolder finalViewHolder = vHolder;  //点击删除...

    EventBusDemo

    * 使用onEvent来接收事件,那么接收事件和分发事件在一个线程中执行 * @param event */ public void onEvent(PostEvent event) { Log.d("zhai", "OnEvent-->"+Thread.currentThread().getId()); } /** * ...

    SelectAll全选

    删除之类操作需要全选... convertView.setTag(holder); } else { // 取出holder holder = (ViewHolder) convertView.getTag(); } // 设置list中TextView的显示 holder.tv.setText(list.get(position)); ...

Global site tag (gtag.js) - Google Analytics