现在的位置: 首页 > 综合 > 正文

android 为 ListView Item中的组件添加事件 以及更新数据

2013年10月13日 ⁄ 综合 ⁄ 共 1402字 ⁄ 字号 评论关闭

// 部分代码如下:

其中holder.count 是一个EditView

holder.price 是一个TextView

Java代码
  1. view plaincopy to clipboardprint?    
  2. @Override      
  3.     public View getView(final int position,View convertView,final ViewGroup parent) {      
  4. 。。。。。。      
  5. // 注意该方法中的Item组件不能使用holder模式,如果用该模式, 所有的组件将共享item中view的事件      
  6. 导致监听不到指定item中的view的事件,解决办法就是每次创建一个Item中的组件      
  7.       
  8. 然后对于每个item 使用不同的监听事件 即 new TextWatcher() 每次都创建一个新的事件监听器      
  9.       
  10. final ViewHolder holder = new ViewHolder();      
  11.       
  12. holder.count.addTextChangedListener( new TextWatcher() {      
  13.             .....      
  14.     @Override      
  15.     public void afterTextChanged(Editable s) {      
  16.     //holder.price 是与holder.count在同一个item的view                    
  17. holder.price.setText("......."); //赋值起作用      
  18.          .....      
  19.         //textTotalPrice是最后一个Item中的view      
  20.         //与holder.price 不是同一个item中的view      
  21.     textTotalPrice.setText("。。。。");//赋值无效      
  22.          // 更新list      
  23.     goods.get(position).setCount(count+"");      
  24.     //更新数据:条用该方法的以后, 会重新执行getView方法,非局部跟新      
  25.     GoodsListAdapter.this.notifyDataSetChanged();      
  26. });      



完整代码如下:  复制到剪贴板
 

Java代码
  1.  
  2. view plaincopy to clipboardprint?  
  3. import java.util.List;    
  4.     
  5. import org.android.util.NumberUtils;    
  6.     
  7. import android.app.Activity;    
  8. import android.text.Editable;    
  9. import android.text.TextWatcher;    
  10. import android.util.Log;    
  11. import android.view.LayoutInflater;    
  12. import android.view.View;    

抱歉!评论已关闭.