android – 如何使用setTag和getTag与自定义适配器

前端之家收集整理的这篇文章主要介绍了android – 如何使用setTag和getTag与自定义适配器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我陷入困境,需要帮助.我试图使用set和get标签,但我无法得到它的工作原理这个动作:

>我正在使用列表视图来显示加载到扩展适配器的图像
>自定义适配器使用imageview_1,textview_1和button_1来扩展布局
>在我的主要活动中,对于button_1,我有一个“Public Void OnClickHandler”,并且在“android:onClick”的布局上进行了配置,所以当点击按钮时,它会做某事
>当button_1被点击时,我想从特定视图的textview_1获取文本,然后加载其他图像.
我想使用get并设置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;
}

我的主要活动被剪了

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

因为你得到的视图点击作为你的函数的参数

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相关文章