// 部分代码如下:
其中holder.count 是一个EditView
holder.price 是一个TextView
Java代码
- view plaincopy to clipboardprint?
- @Override
- public View getView(final int position,View convertView,final ViewGroup parent) {
- 。。。。。。
- // 注意该方法中的Item组件不能使用holder模式,如果用该模式, 所有的组件将共享item中view的事件
- 导致监听不到指定item中的view的事件,解决办法就是每次创建一个Item中的组件
- 然后对于每个item 使用不同的监听事件 即 new TextWatcher() 每次都创建一个新的事件监听器
- final ViewHolder holder = new ViewHolder();
- holder.count.addTextChangedListener( new TextWatcher() {
- .....
- @Override
- public void afterTextChanged(Editable s) {
- //holder.price 是与holder.count在同一个item的view
- holder.price.setText("......."); //赋值起作用
- .....
- //textTotalPrice是最后一个Item中的view
- //与holder.price 不是同一个item中的view
- textTotalPrice.setText("。。。。");//赋值无效
- // 更新list
- goods.get(position).setCount(count+"");
- //更新数据:条用该方法的以后, 会重新执行getView方法,非局部跟新
- GoodsListAdapter.this.notifyDataSetChanged();
- });
完整代码如下: 复制到剪贴板
Java代码
- view plaincopy to clipboardprint?
- import java.util.List;
- import org.android.util.NumberUtils;
- import android.app.Activity;
- import android.text.Editable;
- import android.text.TextWatcher;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;