How to use setTag and getTag with custom adapter(如何将 setTag 和 getTag 与自定义适配器一起使用)
问题描述
我被困住了,我需要帮助.我正在尝试使用 set 和 get Tag,但我不知道它是如何用于此操作的:
I get stucked and I need help. I'm trying to use set and get Tag but i can't get how it works for this action:
- 我正在使用列表视图来显示加载到扩展适配器的图像
- 自定义适配器使用 imageview_1、textview_1 和 button_1 填充布局
- 在我的主要活动中,我为 button_1 设置了一个Public Void OnClickHandler",并在布局上配置了android:onClick",因此当单击按钮时它会执行某些操作
- 单击 button_1 时,我想从该特定视图中获取 textview_1 中的文本,然后加载不同的图像.我想使用 get 和 set TAGS 来做到这一点,所以我需要使用 button_1 和 imageview_1 进行引用.这是我的剪切代码.提前谢谢你
自定义适配器
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.itemstartsession, null);
holder = new ViewHolder();
holder.image = (WebView)convertView.findViewById(R.id.img_session);
//holder.image.setTag(position);
holder.code = (TextView)convertView.findViewById(R.id.code_item_session_text);
//holder.code.setTag(position);
holder.share=(ImageButton)convertView.findViewById(R.id.share_item_session_button);
holder.share.setTag(position);
convertView.setTag(holder);
// Check if my setTag is ok for button and get the reference to get
//text from textview and the referece to webview, then I gonna load a url
} else {
holder=(ViewHolder)convertView.getTag();
}
StoreDataForBA storeItem= (StoreDataForBA) getItem(position);
holder.image.loadUrl(storeItem.getImage());
holder.code.setText(storeItem.getCode());
return convertView;
}
这是我的数据获取器和设置器,非常简单
This is my getter and setter for data, very easy
public StoreDataForBA( String image, String code) {
this.setImage(image);
this.setCode(code);
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
我的主要活动被剪断了
public void shareOnClickHandler(View v) {
// plz here i need the code to get the text from textview and also get the
// reference of the webview, so i can do something like
// StoreDataForBA data = (StoreDataForBA)v.getTag();
// image2.loadUrl("http://image2")..... I'm not sure, thank you
}
推荐答案
你的代码有点混乱,所以我给你一个示例
your code is little bit confusing, so I give you a sample
示例标签类
public class MyTag
{
String code;
String image;
String web_ref;
public MyTag()
{
code=null;
image=null;
web_ref=null;
}
public MyTag(String cod,String img,String wref)
{
code=cod;
image=img;
web_ref=wref;
}
}
您想在单击按钮时获取此值吗?所以把这个标签类对象作为标签放在自定义适配器的getView中的按钮上
you want to get this values when clicked on button right ? So put this tag class object as tag on button in getView of your custom adapter
MyTag myTag=new MyTag("code","image","web_ref");
holder.button.setTag(myTag);
因为您将视图单击作为函数的参数
since you get the view clicked as argument to the your function
public void shareOnClickHandler(View v)
{
myTag=(MyTag)v.getTag();
text=myTag.code;
image2.loadUrl("http://"+myTag.image);//..... I'm not sure, thank you
webview.loadUrl(mytag.web_ref);
}
我想你明白了,试着用这个想法来实现你的代码
I think you get the idea, try to implement your code with this idea
这篇关于如何将 setTag 和 getTag 与自定义适配器一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将 setTag 和 getTag 与自定义适配器一起使用
基础教程推荐
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01