当前位置:   article > 正文

android里面RadioButton设置setChecked(true)失效的解决方案_android radiobutton xml设置checked不起作用

android radiobutton xml设置checked不起作用

问题描述:先看页面


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="@color/pub_window_bg" >
  6. <LinearLayout
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:orientation="vertical"
  10. android:paddingTop="10dp" >
  11. <RelativeLayout
  12. android:layout_width="fill_parent"
  13. android:layout_height="wrap_content"
  14. android:background="@color/white"
  15. android:orientation="vertical"
  16. android:padding="10dp" >
  17. <TextView
  18. android:id="@+id/tvTitle"
  19. android:layout_width="wrap_content"
  20. android:layout_height="wrap_content"
  21. android:text="大家帮名称"
  22. android:textColor="#505050"
  23. android:textSize="16sp" />
  24. <TextView
  25. android:id="@+id/tvTitleContent"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:layout_marginLeft="10dp"
  29. android:layout_toRightOf="@id/tvTitle"
  30. android:ellipsize="end"
  31. android:singleLine="true"
  32. android:text="联想6540安装-现场安装"
  33. android:textColor="#505050"
  34. android:textSize="16sp" />
  35. <TextView
  36. android:id="@+id/tvMoneyTitle"
  37. android:layout_width="wrap_content"
  38. android:layout_height="wrap_content"
  39. android:layout_below="@id/tvTitle"
  40. android:layout_marginTop="5dp"
  41. android:text="支持金额"
  42. android:textColor="#505050"
  43. android:textSize="14sp" />
  44. <TextView
  45. android:id="@+id/tvMoney"
  46. android:layout_width="wrap_content"
  47. android:layout_height="wrap_content"
  48. android:layout_below="@id/tvTitle"
  49. android:layout_marginLeft="10dp"
  50. android:layout_marginTop="5dp"
  51. android:layout_toRightOf="@id/tvMoneyTitle"
  52. android:text="支持金额"
  53. android:textColor="#505050"
  54. android:textSize="14sp" />
  55. </RelativeLayout>
  56. <!-- 支付 -->
  57. <LinearLayout
  58. android:layout_width="fill_parent"
  59. android:layout_height="wrap_content"
  60. android:layout_marginTop="10dp"
  61. android:background="@color/white"
  62. android:orientation="vertical" >
  63. <LinearLayout
  64. android:layout_width="fill_parent"
  65. android:layout_height="wrap_content"
  66. android:layout_marginBottom="11dp"
  67. android:layout_marginLeft="10dp"
  68. android:layout_marginTop="12dp"
  69. android:background="@drawable/pub_bg_selector"
  70. android:gravity="center_vertical"
  71. android:orientation="horizontal" >
  72. <TextView
  73. android:layout_width="wrap_content"
  74. android:layout_height="wrap_content"
  75. android:layout_centerVertical="true"
  76. android:text="使用钱包付款"
  77. android:textColor="#505050"
  78. android:textSize="15sp" />
  79. <TextView
  80. android:id="@+id/tvWalletMoney"
  81. android:layout_width="wrap_content"
  82. android:layout_height="wrap_content"
  83. android:layout_marginLeft="5dp"
  84. android:layout_weight="1"
  85. android:ellipsize="end"
  86. android:singleLine="true"
  87. android:text=" (可用余额:¥0) "
  88. android:textColor="#858585"
  89. android:textSize="15sp" />
  90. <CheckBox
  91. android:id="@+id/cbUseWallet"
  92. android:layout_width="wrap_content"
  93. android:layout_height="wrap_content"
  94. android:layout_alignParentRight="true"
  95. android:layout_centerVertical="true"
  96. android:layout_marginRight="20dp"
  97. android:button="@drawable/cb_show"
  98. android:drawableLeft="@null" />
  99. </LinearLayout>
  100. <include layout="@layout/include_line_h" />
  101. <RadioGroup
  102. android:id="@+id/radioGroupPay"
  103. android:layout_width="match_parent"
  104. android:layout_height="wrap_content"
  105. android:background="@color/white"
  106. android:orientation="vertical" >
  107. <RadioButton
  108. android:id="@+id/radioAlipay"
  109. android:layout_width="match_parent"
  110. android:layout_height="wrap_content"
  111. android:button="@null"
  112. android:checked="true"
  113. android:drawableLeft="@drawable/img_alpay"
  114. android:drawablePadding="10dp"
  115. android:drawableRight="@drawable/selector_gender_woman"
  116. android:paddingBottom="10dp"
  117. android:paddingLeft="10dp"
  118. android:paddingRight="25dp"
  119. android:paddingTop="10dp"
  120. android:text="支付宝"
  121. android:textColor="#858585" />
  122. <RadioButton
  123. android:id="@+id/radioWxpay"
  124. android:layout_width="match_parent"
  125. android:layout_height="wrap_content"
  126. android:button="@null"
  127. android:drawableLeft="@drawable/img_wechat"
  128. android:drawablePadding="10dp"
  129. android:drawableRight="@drawable/selector_gender_woman"
  130. android:paddingBottom="10dp"
  131. android:paddingLeft="10dp"
  132. android:paddingRight="25dp"
  133. android:paddingTop="10dp"
  134. android:text="微信钱包"
  135. android:textColor="#858585" />
  136. </RadioGroup>
  137. <include layout="@layout/include_line_h" />
  138. </LinearLayout>
  139. </LinearLayout>
  140. <LinearLayout
  141. android:layout_width="fill_parent"
  142. android:layout_height="49dp"
  143. android:layout_alignParentBottom="true"
  144. android:background="#80FFFFFF"
  145. android:gravity="center_vertical"
  146. android:orientation="horizontal" >
  147. <TextView
  148. android:layout_width="wrap_content"
  149. android:layout_height="wrap_content"
  150. android:gravity="center"
  151. android:paddingLeft="15dp"
  152. android:text="共支付:"
  153. android:textColor="#858585"
  154. android:textSize="14sp" />
  155. <TextView
  156. android:layout_width="wrap_content"
  157. android:layout_height="wrap_content"
  158. android:text="¥"
  159. android:textColor="#df5132"
  160. android:textSize="18sp" />
  161. <TextView
  162. android:id="@+id/tvPayMoney"
  163. android:layout_width="wrap_content"
  164. android:layout_height="wrap_content"
  165. android:ellipsize="end"
  166. android:maxLength="7"
  167. android:minWidth="80dp"
  168. android:singleLine="true"
  169. android:text="100000"
  170. android:textColor="#df5132"
  171. android:textSize="18sp" />
  172. <com.heiyue.ui.ButtonTouch
  173. android:id="@+id/btnSubmit"
  174. android:layout_width="wrap_content"
  175. android:layout_height="match_parent"
  176. android:layout_weight="1"
  177. android:background="@drawable/btn_orange_corner_no"
  178. android:gravity="center"
  179. android:text="去支付"
  180. android:textColor="@color/white"
  181. android:textSize="16sp" />
  182. </LinearLayout>
  183. </RelativeLayout>


手动设置选择哪种支付方式

  1. cbUseWallet.setOnClickListener(new OnClickListener() {
  2. @Override
  3. public void onClick(View v) {
  4. choosePayType(0);
  5. }
  6. });
  7. radioAlipay.setOnClickListener(new OnClickListener() {
  8. @Override
  9. public void onClick(View v) {
  10. choosePayType(1);
  11. }
  12. });
  13. radioWxpay.setOnClickListener(new OnClickListener() {
  14. @Override
  15. public void onClick(View v) {
  16. choosePayType(2);
  17. }
  18. });

  1. /**
  2. * 选择支付方式;三者只能选择一种
  3. *
  4. * @param type
  5. * 0,钱包支付;1,支付宝支付;2微信支付
  6. */
  7. private void choosePayType(int type) {
  8. cbUseWallet.setChecked(false);
  9. radioGroupPay.clearCheck();
  10. switch (type) {
  11. case 0:
  12. cbUseWallet.setChecked(true);
  13. break;
  14. case 1:
  15. radioAlipay.setChecked(true);
  16. break;
  17. case 2:
  18. radioWxpay.setChecked(true);
  19. break;
  20. default:
  21. break;
  22. }
  23. }

解决方案:

1.

RadioGroup的clearCheck方法

设置RadioButton为初始的都不选中状态。在做完点击事件后,RadioGroup.clearCheck();就可以了。直接挨个setChecked(false)会出问题,下次点击不会变为选中状态

2.

设置RadioButton的默认选中, 使用setChecked(true) 这样会使RadioButton一直处于选中状态. 

我们应该给RadioGroup 设置选中的RadioButton  

代码:

radioGroup.check(radioButton.getId()); 




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/733770
推荐阅读
相关标签
  

闽ICP备14008679号