gpt4 book ai didi

android - 一行中的按钮单击事件影响android中listview中的其他行

转载 作者:行者123 更新时间:2023-11-29 01:31:22 24 4
gpt4 key购买 nike

我在 ListView 的每一行都有交付按钮。当我们点击交付按钮时,应该为该特定行项目更改背景图像(图像更改为交付完成图像)。在这里我可以通过编写来更改背景图像代码为 setBackgroundResource。但问题是它会影响 ListView 中的其他行项目,这意味着当我滚动时,它们特定行项目的其他按钮图像也会更改。我从过去三天开始尝试过这个问题,但没有用.请给我建议。

public View getView(final int position, View convertView, ViewGroup parent) {

![enter image description here][1]
final ViewHolder holder;
holder = new ViewHolder();


if (convertView == null) {
LayoutInflater vi = getLayoutInflater();
convertView = vi.inflate(R.layout.ambassdor_orders_list_fields, null);
}

Routes rou=RouteList.get(position);

holder.route = (Button) convertView.findViewById(R.id.deliverBtn);
holder.memberName = (TextView) convertView.findViewById(R.id.memberNameTxt);
holder.amount = (TextView) convertView.findViewById(R.id.amountTxt);

holder.memberName.setText(rou.getMemberName());
holder.amount.setText(rou.getAmount());

holder.route.setTag(position);
holder.memberName.setTag(position);
holder.amount.setTag(position);

convertView.setTag(holder);

holder.route.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

holder.route.setBackgroundResource(R.drawable.done);

}
});
convertView.setTag(R.id.routeButtton, holder.route);
convertView.setTag(R.id.memberNameTxt, holder.memberName);
convertView.setTag(R.id.amountTxt, holder.amount);
return convertView;
}

最佳答案

    public View getView(final int position, View convertView, ViewGroup parent) {

final ViewHolder holder;
holder = new ViewHolder();


if (convertView == null) {
LayoutInflater vi = getLayoutInflater();
convertView = vi.inflate(R.layout.ambassdor_orders_list_fields, null);

convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}

Routes rou=RouteList.get(position);

holder.route = (Button) convertView.findViewById(R.id.deliverBtn);
holder.memberName = (TextView) convertView.findViewById(R.id.memberNameTxt);
holder.amount = (TextView) convertView.findViewById(R.id.amountTxt);

holder.memberName.setText(rou.getMemberName());
holder.amount.setText(rou.getAmount());

holder.route.setOnClickListener(new OnClickListener() { public void onClick(View v) {
holder.route.setBackgroundResource(R.drawable.done);

}
});
return convertView;
}

根据您的代码,您应该保留一个字段来表示模型数据本身(路线)中路线按钮背景的状态。以便添加代码以使用此状态切换背景。

当您点击按钮时,只需更新状态(例如 rou.setDone(true))

在您的 getView 中,您可以添加以下代码来更新它

if(rou.getDone()) {
//setBackground
} else {
//revert background
}
notifyDatasetChanged()

关于android - 一行中的按钮单击事件影响android中listview中的其他行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31024468/

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