gpt4 book ai didi

android - 如何将 setTag 和 getTag 与自定义适配器一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:51 29 4
gpt4 key购买 nike

我被困住了,我需要帮助。我正在尝试使用 set 和 get Tag,但我无法了解它如何用于此操作:

  • 我正在使用 ListView 显示加载到扩展适配器的图像
  • 自定义适配器使用 imageview_1、textview_1 和 button_1 扩充布局
  • 在我的主要 Activity 中,我有一个用于 button_1 的“Public Void OnClickHandler”,并且在布局上配置了“android:onClick”,所以当按钮被点击时它会做一些事情
  • 单击 button_1 时,我想从该特定 View 中获取 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;
}

这是我的数据getter和setter,非常简单

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;
}

我的主要 Activity 被剪掉了

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
}

最佳答案

你的代码有点困惑,所以我给你一个例子

示例标签类

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 中的按钮上

MyTag myTag=new MyTag("code","image","web_ref");
holder.button.setTag(myTag);

因为你点击了 View 作为函数的参数

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);
}

我想你明白了,试着用这个想法实现你的代码

关于android - 如何将 setTag 和 getTag 与自定义适配器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23600599/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com