利用dialog.getButton().setEnabled()实现按钮使能

在Android中,通过AlertDialog.Builder创建对话框,并设置布局。在对话框显示后,获取确认按钮并设置为禁用状态。当EditText内容改变时,监听文本变化,根据EditText内容判断是否启用确认按钮。如果两个EditText都不为空,确认按钮将被启用。
     
	<span style="font-family: Arial, Helvetica, sans-serif;">                       AlertDialog.Builder builder = new AlertDialog.Builder(CheckTableActivity.this);</span>
                        LayoutInflater inflater = getLayoutInflater();  
		        View view = inflater.inflate(R.layout.input_dialog, null);  
		        dg_danger = (EditText) view.findViewById(R.id.editText1);  
		        dg_score = (EditText) view.findViewById(R.id.editText2);  
		        dg_spinner = (Spinner) view.findViewById(R.id.spinner1);
		        
		        final int num = vp_curr>0?(vp_curr-1):0;
		        danger_flag = 0;
		        score_flag = 0;
		        
		        // Inflate and set the layout for the dialog  
		        // Pass null as the parent view because its going in the dialog layout  
		        builder.setView(view)  
		                // Add action buttons  
		                .setPositiveButton("确认",  
		                        new DialogInterface.OnClickListener()  
		                        {  
		                            @Override  
		                            public void onClick(DialogInterface dialog, int id)  
		                            {  
		                            	addListItem(num, dg_danger.getText().toString(), dg_score.getText().toString());
		                            	System.out.println(dg_danger.getText().toString() + ";" + dg_score.getText().toString());
		                            }  
		                        }).setNegativeButton("取消", null).setTitle("添加隐患条目");  
		        AlertDialog ad = builder.create();
		        ad.setView(view);
		        ad.show();
			//show之后再获取按钮

		        final Button positiveButton = ad.getButton(AlertDialog.BUTTON_POSITIVE);
		        
		        positiveButton.setEnabled(false);
	        	System.out.println("setEnabled false");
	        	
			//edittext文本改变监听,下同
		        dg_danger.addTextChangedListener(new TextWatcher()
		        {
                    @Override
                    public void afterTextChanged(Editable arg0) {
                    	System.out.println("danger changed");
                        if(arg0.toString().trim().equals("")){
                        	danger_flag = 0;
                            positiveButton.setEnabled(false);
                            System.out.println("set enabled false");
                        } else {
                        	danger_flag = 1;
                        	if(score_flag == 1)
                        	{
                        		positiveButton.setEnabled(true);
                        		System.out.println("set enabled true");
                        	}
                        }
                    }
                    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
                    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
			});
		        dg_score.addTextChangedListener(new TextWatcher()
		        {
                    @Override
                    public void afterTextChanged(Editable arg0) {
                    	System.out.println("score changed");
                        if(arg0.toString().equals("")){
                        	score_flag = 0;
                            positiveButton.setEnabled(false);
                            System.out.println("set enabled false");
                        } else {
                        	score_flag = 1;
                        	if(danger_flag == 1)
                        	{
                        		positiveButton.setEnabled(true);
                        		System.out.println("set enabled true");
                        	}
                        }
                    }
                    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
                    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
			 }
		);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值