- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
android源代码习android源代码学习
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{
privatestaticListGoodsgoods;
privateLayoutInflatermInflater;
privatestaticTextViewtextTotalPrice;
//privateActivitycontext;
publicGoodsListAdapter(ListGoodsgoods_,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()+);
}else{
textTot
文档评论(0)