android实现多个edittext的监听器,android listview中多个edittext监听取值解决办法

这篇博客主要讨论如何在Android的ListView中实现多个EditText的监听和取值。作者通过创建ViewHolder类来缓存视图,并为每个EditText设置触摸监听和文本变化监听。在文本变化监听器中,博主实现了当EditText内容改变时更新对应数据列表的功能。通过设置不同的tag,博主解决了多个EditText的区分问题,确保了每个EditText的值都能正确获取。
摘要由CSDN通过智能技术生成

android listview中多个edittext监听取值

如题,一个edittext可以成功取值,那么多个怎么监听,求大神指教!

public final class ViewHolder {

public TextView in_goods_id;

public TextView goodsName;

public EditText quanity;

public EditText produtionDate;

public EditText location;

public EditText batch;

}

public class MyAdapter extends BaseAdapter {

private LayoutInflater flater;

public MyAdapter(Context context,List> data) {

super();

this.flater = LayoutInflater.from(context);

}

public int getCount() {

// TODO Auto-generated method stub

return list2.size();

}

public Object getItem(int position) {

// TODO Auto-generated method stub

return null;

}

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

private Integer index = -1;

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

// TODO Auto-generated method stub

ViewHolder holder = null;

if (convertView == null) {

holder = new ViewHolder();

convertView = flater.inflate(R.layout.in_goods_list, null);

holder.in_goods_id = (TextView) convertView

.findViewById(R.id.in_goods_id);

holder.goodsName = (TextView) convertView

.findViewById(R.id.goodsName);

holder.quanity = (EditText) convertView

.findViewById(R.id.quanity);

holder.produtionDate = (EditText) convertView

.findViewById(R.id.produtionDate);

holder.location = (EditText) convertView

.findViewById(R.id.location);

holder.batch = (EditText) convertView.findViewById(R.id.batch);

holder.quanity.setTag(position);

holder.quanity.setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View view, MotionEvent event) {

// TODO Auto-generated method stub

if (event.getAction() == MotionEvent.ACTION_UP) {

index = (Integer) view.getTag();

}

return false;

}

});

class MyTextWatcher implements TextWatcher {

public MyTextWatcher(ViewHolder holder) {

mHolder = holder;

}

private ViewHolder mHolder;

@Override

public void onTextChanged(CharSequence s, int start,

int before, int count) {

}

@Override

public void beforeTextChanged(CharSequence s, int start,

int count, int after) {

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

if (s != null && !"".equals(s.toString())) {

int position = (Integer) mHolder.quanity.getTag();

list2.get(position).put("quanity", s.toString());// 当EditText数据发生改变的时候存到data变量中

for (Map m : list2) {

for (String k : m.keySet()) {

System.out.println(k + " : " + m.get(k));

}

}

}

}

}

holder.quanity

.addTextChangedListener(new MyTextWatcher(holder));

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

holder.quanity.setTag(position);

}

------解决思路----------------------

能取一个难道不能取多个?

------解决思路----------------------

他们id是不一样的啊

------解决思路----------------------

mHolder.quanity不就是edit吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值