我陷入困境,需要帮助.我试图使用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); }
我想你得到这个想法,尝试用这个想法来实现你的代码