您的位置:首页 > 其它

View的setTag和getTag方法

2012-11-01 10:59 253 查看


View的setTag和getTag方法

2012-03-21 20:26 164人阅读 评论(0) 收藏 举报

这个东西在一些需要用到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

}

View中的setTag(Object)表示给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;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: