android里面RadioButton设置setChecked(true)失效的解决方案

问题描述:先看页面

android里面RadioButton设置setChecked(true)失效的解决方案_第1张图片




    

        

            

            

            

            
        
		
        

            

                

                

                
            

            

            

                

                
            

            
        
    

    

        

        

        

        
    



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

cbUseWallet.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				choosePayType(0);
			}
		});

		radioAlipay.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				choosePayType(1);
			}
		});

		radioWxpay.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				choosePayType(2);
			}
		});

/**
	 * 选择支付方式;三者只能选择一种
	 * 
	 * @param type
	 *            0,钱包支付;1,支付宝支付;2微信支付
	 */
	private void choosePayType(int type) {
		cbUseWallet.setChecked(false);
		radioGroupPay.clearCheck();

		switch (type) {
		case 0:
			cbUseWallet.setChecked(true);
			break;
		case 1:
			radioAlipay.setChecked(true);
			break;
		case 2:

			radioWxpay.setChecked(true);
			break;

		default:
			break;
		}

	}

解决方案:

1.

RadioGroup的clearCheck方法

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

2.

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

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

代码:

radioGroup.check(radioButton.getId()); 




你可能感兴趣的:(Android)