学习android源代码,android源代码学习.doc

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

// 部分代码如下:

其中holder.count 是一个EditView

holder.price 是一个TextView

Java代码

viewplaincopytoclipboardprint?

@Override

publicViewgetView(finalintposition,ViewconvertView,finalViewGroupparent){

。。。。。。

//注意该方法中的Item组件不能使用holder模式,如果用该模式,所有的组件将共享item中view的事件

导致监听不到指定item中的view的事件,解决办法就是每次创建一个Item中的组件

然后对于每个item使用不同的监听事件即newTextWatcher()每次都创建一个新的事件监听器

finalViewHolderholder=newViewHolder();

holder.count.addTextChangedListener(newTextWatcher(){

.....

@Override

publicvoidafterTextChanged(Editables){

//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代码

viewplaincopytoclipboardprint?

importjava.util.List;

importorg.android.util.NumberUtils;

importandroid.app.Activity;

importandroid.text.Editable;

importandroid.text.TextWatcher;

importandroid.util.Log;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.BaseAdapter;

importandroid.widget.EditText;

importandroid.widget.TextView;

importcom.mmb.shop.R;

/**

*购物车:商品列表

*

*@authorwangtao

*/

publicclassGoodsListAdapterextendsBaseAdapter{

privatestaticListgoods;

privateLayoutInflatermInflater;

privatestaticTextViewtextTotalPrice;

//privateActivitycontext;

publicGoodsListAdapter(Listgoods_,Activitycontext){

goods=goods_;

mInflater=context.getLayoutInflater();

//this.context=context;

}

@Override

publicViewgetView(finalintposition,ViewconvertView,finalViewGroupparent){

//最后一条显示总价

if(position==goods.size()){

convertView=mInflater.inflate(android.R.layout.simple_list_item_1,parent,false);

textTotalPrice=(TextView)convertView.findViewById(android.R.id.text1);

if(goods.size()>0){

textTotalPrice.setText("总价:"+calcuteTotalPrice()+"");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值