android中怎么获得listview中Button点击行的值

 我来答
qi12371
2014-11-02 · 电商从业者,码农出生
qi12371
采纳数:559 获赞数:1052

向TA提问 私信TA
展开全部
listview.setonItemClickListener 方法中有某一行的具体行数,然后获取相应的控件信息。
babyAn涩
推荐于2016-09-25 · 知道合伙人金融证券行家
babyAn涩
知道合伙人金融证券行家
采纳数:7678 获赞数:132050
2014年于上海市商贸旅游学校毕业,专业会计。后就读于上海市同济大学网络教育学院。

向TA提问 私信TA
展开全部
使用自定义的 adapter在ArrayList中显示items。每一行item都2个 textViews和1个按钮。
依据一个属性的状态,在图像按钮上的图像会改变。当点击image button时,从行的item(orderID )中或取信息。
public class OrderedAdapter extends ArrayAdapter<RMOrder> {

private Context context;
private RMOrder rowItem;
private ListView lv;
private int clickedID;
private ArrayList<RMOrder>items;
private int orderID;
private ViewHolder holder;

public OrderedAdapter(Context context, int textViewResourceId, List<RMOrder> objects) {
super(context, textViewResourceId, objects);
this.context = context;
}

/*private view holder class*/
private class ViewHolder {
ImageButton deleteButton;
TextView txtMenuName;
TextView txtMenuDesc;
TextView txtMenuPrice;
int orderID;
}

public View getView(final int position, View convertView, ViewGroup parent) {
holder = null;
rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.basket_list_row, null);
holder = new ViewHolder();
holder.txtMenuName = (TextView) convertView.findViewById(R.id.menuNameText);
holder.txtMenuDesc = (TextView) convertView.findViewById(R.id.menuDetailText);
holder.deleteButton = (ImageButton) convertView.findViewById(R.id.menuDelete);
holder.txtMenuPrice = (TextView) convertView.findViewById(R.id.menuPrice);
holder.orderID = 0;
lv = (ListView) convertView.findViewById(R.id.orderedList);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();

String detailsString = "";
double price = rowItem.getPrice();

for (RMOption i : rowItem.getOption()) {
detailsString += "-" + i.getName();
price += i.getExtraPrice();
}

holder.orderID = rowItem.getId();
holder.txtMenuName.setText(rowItem.getMenuName());
holder.txtMenuDesc.setText(detailsString);
holder.txtMenuPrice.setText(Double.toString(price) + " TL");
holder.deleteButton.setFocusable(false);

items = new ArrayList<RMOrder>(GlobalList.orderedItemsList.values());
clickedID = items.get(position).getId();
orderID = holder.orderID;
//change image of image button
if(rowItem.getStatus().equals("pending")){
holder.deleteButton.setImageResource(R.drawable.rsz_pending);
holder.deleteButton.setOnClickListener(new OnClickListener() {
//TODO Burada tıklananı bulmakta sıkıntı var
public void onClick(View v) {

//GET ORDER ID
}
});
else
holder.deleteButton.setImageResource(R.drawable.rsz_approved);
}
return convertView;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式