【Android源码 栏目提醒】:网学会员--在 Android源码 编辑为广大网友搜集整理了:android源代码学习 - 编程语言绩等信息,祝愿广大网友取得需要的信息,参考学习。
android 为 ListView Item 中的组件添加事件 以及更新数据// 部分代码如下:其中 holder.count 是一个 EditViewholder.price 是一个 TextViewJava 代码 1 viewplaincopytoclipboardprint 2 Override 3 publicViewgetViewfinalintpositionViewconvertViewfinalViewGroupparent 4 。
。
。
。
。
。
5 //注意该方法中的 Item 组件不能使用 holder 模式,如果用该模式,所有的组件将 共享 item 中 view 的事件 6 导致监听不到指定 item 中的 view 的事件,解决办法就是每次创建一个 Item 中的组 件 7 8 然后对于每个 item 使用不同的监听事件即 newTextWatcher每次都创建一个新的 事件监听器 9 10 finalViewHolderholdernewViewHolder 11 12 holder.count.addTextChangedListenernewTextWatcher 13 ..... 14 Override 15 publicvoidafterTextChangedEditables 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.getposition.setCountcount 24 //更新数据:条用该方法的以后,会重新执行 getView 方法,非局部跟新 25 GoodsListAdapter.this.notifyDataSetChanged 26 完整代码如下: Java 代码1. viewplaincopytoclipboardprint2. importjava.util.List3.4. importorg.
android.util.NumberUtils5.6. importandroid.app.Activity7. importandroid.text.Editable8. importandroid.text.TextWatcher9. importandroid.util.Log10. importandroid.view.LayoutInflater11. importandroid.view.View12. importandroid.view.ViewGroup13. importandroid.widget.BaseAdapter14. importandroid.widget.EditText15. importandroid.widget.TextView16.17. importcom.mmb.shop.R18. /19. 购物车:商品列表20. 21. authorwangtao22. /23. publicclassGoodsListAdapterextendsBaseAdapter24.25. privatestaticListgoods26.27. privateLayoutInflatermInflater28.29. privatestaticTextViewtextTotalPrice30.31. //privateActivitycontext32.33. publicGoodsListAdapterListgoods_Activitycontext34. goodsgoods_35. mInflatercontext.getLayoutInflater36. //this.contextcontext37. 38.39. Override40. publicViewgetViewfinalintpositionViewconvertViewfinalViewGroupparent41. //最后一条显示总价42. ifpositiongoods.size43. convertViewmInflater.inflateandroid.R.layout.simple_list_item_1parentfa lse44. textTotalPriceTextViewconvertView.findViewByIdandroid.R.id.text145. ifgoods.size046. textTotalPrice.setText总价:calcuteTotalPrice47. else48. textTotalPrice.setText购物车为空....49. 50. returnconvertView51. 52.53. finalViewHolderholdernewViewHolder54. //商品列表布局55. convertViewmInflater.inflateR.layout.list_item_shop_carparentfalse56. holder.idTextViewconvertView.findViewByIdR.id.goods_id57. holder.nameTextViewconvertView.findViewByIdR.id.goods_name58. //不能使用 Holder 模式必须每次都创建一个不同的 EditText 组件59. holder.countEditTextconvertView.findViewByIdR.id.goods_count60. //单价61. holder.singlePriceTextViewconvertView.findViewByIdR.id.goods_single_pri ce62. //总价63. holder.priceTextViewconvertView.findViewByIdR.id.goods_price64.65. finalGoodsitemgoods.getposition66. //holder.id.setTextitem.getId67. holder.name.setTextitem.getName68. holder.count.setTextitem.getCount69. holder.singlePrice.setTextitem.getSinglePrice70. floattotalPriceInteger.valueOfitem.getCountFloat.valueOfitem.getSing lePrice71. holder.price.setText价格:totalPrice72. //设置没类产品的总价73. goods.getposition.setTotalPricetotalPrice74.75. //添加编辑框的 change 事件76. holder.count.addTextChangedListenernewTextWatcher77. Override78. publicvoidonTextChangedCharSequencesintstartintbeforeintcount79. 80. Override81. publicvoidbeforeTextChangedCharSequencesintstartintcount82. intafter83. 84. Override85. publicvoidafterTextChangedEditables86. try//s.toString即是文本框的值87. intcountInteger.valueOfs.toString88. floatsinglePriceInteger.valueOfitem.getSinglePrice89. floattotalPricecountsinglePrice90. holder.price.setTexttotalPrice91. goods.getposition.setTotalPricetotalPrice92. textTotalPrice.setTextGoodsListAdapter.calcuteTotalPrice93. goods.getposition.setCountcount94. //更新数据95. GoodsListAdapter.this.notifyDataSetChanged96. //ViewconvertViewmInflater.inflateandroid.R.layout.simple_list_item_1par entfalse97. //updateItemInTotalPrice98. catchExceptione99. Log.exxe.getStackTrace.toString100.101.102.103.104.returnconvertView105.106.//ViewHolder 模式107.staticclassViewHolder108.TextViewid//ID109.TextViewname//名称110.EditTextcount//数量111.TextViewsinglePrice//单价112.TextViewprice//单个商品的总价113.114.115.116./117.计算所有购物车商品总价118.return119./120.privatefinalstaticfloatcalcuteTotalPrice121.floatprice0f122.forGoodsgs:goods123.priceNumberUtils.toFloatgs.getTotalPrice124.125.returnprice126.127.//更新购物车商品总价 Item非全部整合 ListView128.//privatefinalvoidupdateItemInTotalPrice129.//TextViewviewTextViewthis.getItemgoods.size130.//view.setTextddddddddd131.//132.133.Override134.publicintgetCount135.returngoods.size1136.137.Override138.publicObjectgetItemintposition139.returnposition140.141.Override142.publiclonggetItemIdintposition143.returnposition144.145.146.
上一篇:
android 学习
下一篇:
思想品德教学中学生创新能力的培养