自定义适配器';在android中执行clickEvent时,s textView值发生更改
我制作了一个自定义ListAdapter,我在该适配器中绑定了一些textView,我想执行适配器textView的click事件,并将一些值传递给另一个活动,我尝试了如下操作,但当加载ListView时,我得到的值与当前textView的值不同,因此,我只需要单击的textView的值。但现在我想获得屏幕上显示的大部分ListView,请帮助我,y代码如下: adapter.java自定义适配器';在android中执行clickEvent时,s textView值发生更改,android,listview,textview,custom-adapter,Android,Listview,Textview,Custom Adapter,我制作了一个自定义ListAdapter,我在该适配器中绑定了一些textView,我想执行适配器textView的click事件,并将一些值传递给另一个活动,我尝试了如下操作,但当加载ListView时,我得到的值与当前textView的值不同,因此,我只需要单击的textView的值。但现在我想获得屏幕上显示的大部分ListView,请帮助我,y代码如下: adapter.java public class OrderAdapter extends BaseAdapter { pub
public class OrderAdapter extends BaseAdapter {
public ArrayList<HashMap<String, String>> orderArray;
private Context mContext;
String statusCode, status, orderId;
Intent i;
public OrderAdapter(Context paramContext, ArrayList<HashMap<String, String>> productList) {
this.mContext = paramContext;
this.orderArray = productList;
}
public int getCount() {
return this.orderArray.size();
}
public Object getItem(int paramInt) {
return Integer.valueOf(paramInt);
}
public long getItemId(int paramInt) {
return paramInt;
}
@SuppressWarnings("static-access")
public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) {
LayoutInflater localLayoutInflater = (LayoutInflater) this.mContext.getSystemService("layout_inflater");
Viewholder localViewholder = null;
if (paramView == null) {
paramView = localLayoutInflater.inflate(R.layout.raw_order, paramViewGroup, false);
localViewholder = new Viewholder();
localViewholder.orderNo = ((TextView) paramView.findViewById(R.id.tv_order_no));
localViewholder.date = ((TextView) paramView.findViewById(R.id.tv_date));
localViewholder.status = ((TextView) paramView.findViewById(R.id.tv_stats));
localViewholder.proName = ((TextView) paramView.findViewById(R.id.tv_proname));
localViewholder.amount = ((TextView) paramView.findViewById(R.id.tv_amt));
localViewholder.link = ((TextView) paramView.findViewById(R.id.tv_link));
paramView.setTag(localViewholder);
} else {
localViewholder = new Viewholder();
localViewholder = (Viewholder) paramView.getTag();
}
System.out.println("::::::::::::::array indexes::::::::::::" + orderArray.get(paramInt));
System.out.println(":::::::::::::::;;status::::::::::::::::::::;;" + orderArray.get(paramInt).get(Const.TAG_ORDER_STATUS_ID));
statusCode = orderArray.get(paramInt).get(Const.TAG_ORDER_STATUS_ID);
getStatus(statusCode);
orderId = orderArray.get(paramInt).get(Const.TAG_ORDER_ID);
localViewholder.orderNo.setText("Order no.:" + orderId);
localViewholder.date.setText(orderArray.get(paramInt).get(Const.TAG_DATE_ADDED));
localViewholder.status.setText(status);
localViewholder.proName.setText(orderArray.get(paramInt).get(Const.TAG_PRODUCT_NAME));
localViewholder.amount.setText(orderArray.get(paramInt).get(Const.TAG_TOTAL));
if (statusCode.equals("1") || statusCode.equals("2") || statusCode.equals("7") || statusCode.equals("11")) {
localViewholder.link.setVisibility(View.VISIBLE);
localViewholder.link.setText("Review and pay");
System.out.println(":::::::::::::::inside IF::::::::::::::::::;" + orderId);
} else {
System.out.println(":::::::::::::::inside else::::::::::::::::::;" + orderId);
localViewholder.link.setVisibility(View.INVISIBLE);
}
localViewholder.link.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent(mContext, OrderWebViewActivity.class);
i.putExtra(Const.TAG_ORDER_ID, orderId);
mContext.startActivity(i);
}
});
return paramView;
}
static class Viewholder {
TextView orderNo;
TextView date;
TextView status;
TextView proName;
TextView amount;
TextView link;
}
/*
* status based Links...........!!!!!
*/
}
}
公共类OrderAdapter扩展了BaseAdapter{
公共ArrayList orderArray;
私有上下文;
字符串statusCode、status、orderId;
意图一;
public OrderAdapter(上下文参数上下文、ArrayList产品列表){
this.mContext=paramContext;
this.orderArray=productList;
}
public int getCount(){
返回此.orderArray.size();
}
公共对象getItem(int参数){
返回整数.valueOf(paramInt);
}
公共长getItemId(int参数){
返回参数;
}
@抑制警告(“静态访问”)
公共视图getView(int-paramInt、View-paramView、ViewGroup-paramViewGroup){
LayoutInflater localLayoutInflater=(LayoutInflater)this.mContext.getSystemService(“布局\充气机”);
Viewholder localViewholder=null;
if(paramView==null){
paramView=localLayoutInflater.flate(R.layout.raw_顺序,paramViewGroup,false);
localViewholder=新的Viewholder();
localViewholder.orderNo=((TextView)paramView.findviewbyd(R.id.tv_order_no));
localViewholder.date=((TextView)paramView.findViewById(R.id.tv_date));
localViewholder.status=((TextView)paramView.findViewById(R.id.tv_stats));
localViewholder.proName=((TextView)paramView.findViewById(R.id.tv_proName));
localViewholder.amount=((TextView)paramView.findviewbyd(R.id.tv_amt));
localViewholder.link=((TextView)paramView.findViewById(R.id.tv_link));
setTag(localViewholder);
}否则{
localViewholder=新的Viewholder();
localViewholder=(Viewholder)paramView.getTag();
}
System.out.println(“:::数组索引::::”+orderArray.get(paramInt));
System.out.println(“:::;;状态:::::;”+orderArray.get(paramInt.get(Const.TAG_ORDER_status_ID));
statusCode=orderArray.get(paramInt).get(Const.TAG\u ORDER\u STATUS\u ID);
获取状态(状态代码);
orderId=orderArray.get(paramit).get(Const.TAG\u ORDER\u ID);
localViewholder.orderNo.setText(“订单号:”+orderId);
localViewholder.date.setText(orderArray.get(paramInt).get(Const.TAG_date_ADDED));
localViewholder.status.setText(状态);
localViewholder.proName.setText(orderArray.get(paramInt.get(Const.TAG_PRODUCT_NAME));
localViewholder.amount.setText(orderArray.get(paramInt.get(Const.TAG_TOTAL));
如果(statusCode.equals(“1”)| | statusCode.equals(“2”)| | statusCode.equals(“7”)| | statusCode.equals(“11”)){
localViewholder.link.setVisibility(View.VISIBLE);
localViewholder.link.setText(“审核和支付”);
System.out.println(“::::::内部IF:::::::;”+orderId);
}否则{
System.out.println(“:::::内部else::::::::;“+orderId”);
localViewholder.link.setVisibility(View.INVISIBLE);
}
localViewholder.link.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
意图i=新意图(mContext,OrderWebViewActivity.class);
i、 putExtra(Const.TAG\u ORDER\u ID,orderId);
mContext.startActivity(i);
}
});
返回参数视图;
}
静态类视窗夹{
TextView订单号;
文本查看日期;
文本视图状态;
TextView proName;
文本浏览量;
文本视图链接;
}
/*
*基于状态的链接。。。。。。。。。。。!!!!!
*/
}
}
您需要删除以下两项内容
localViewholder中删除静态变量
getTag()
时,您将再次创建localViewholder的新实例
将其删除为什么您的viewholder类是静态的。?所以这可能是问题所在?第二件事是在
getTag()
的时候,您再次创建了localViewholder
@SilentKiller的新实例,它对我有效…谢谢兄弟。!我补充了这个建议作为答案。