2 u013165496 u013165496 于 2015.06.30 12:33 提问

EditText在setOnFocusChangeListener方法中无法做判断
 et_limit.setOnFocusChangeListener(new OnFocusChangeListener() {
                @SuppressLint("NewApi")
                @Override
                public void onFocusChange(View arg0, boolean focus) {
                    if(focus){
                        return;
                    }
                    if(et_limit.getText().toString()!=null||!"".equals(et_limit.getText().toString())){
                        if(Integer.parseInt(et_limit.getText().toString())>180){
                            Toast.makeText(getApplicationContext(), "请输入正确值", Toast.LENGTH_SHORT).show();
                            et_limit.clearComposingText();
                            et_limit.setText("输入有误");
                            et_limit.setTextColor(Color.RED);
//                          et_limit.setEnabled(true);
//                          et_limit.bringToFront();
//                          et_limit.beginBatchEdit();
                            return;
                        }else if(Integer.parseInt(et_limit.getText().toString())==180){
                            Toast.makeText(getApplicationContext(), "已经是最大值", Toast.LENGTH_SHORT).show();
                            et_mm.setEnabled(false);
                            et_ss.setEnabled(false);
                        }
                    }
                    ((Route)(getItem(position))).longDegree=et_limit.getText().toString();
                }
            });

代码中使用if判断和这 句代码后 et_limit.clearComposingText(); EditText再次点击输入就崩,什么原因

3个回答

bdmh
bdmh   Ds   Rxr 2015.06.30 12:59
已采纳

可能第二次getText()得到的是null,所以你访问它就报错了

danielinbiti
danielinbiti   Ds   Rxr 2015.06.30 13:35
 if(et_limit.getText().toString()!=null||!"".equals(et_limit.getText().toString())){
 应该是&&
 if(et_limit.getText().toString()!=null&&!"".equals(et_limit.getText().toString())){

 另外,看看logcat的日志,崩了的日志是什么。
u013165496
u013165496   2015.06.30 13:42

确实&&解决了问题,谢谢你们

Csdn user default icon
上传中...
上传图片
插入图片