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再次点击输入就崩,什么原因

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

 if(et_limit.getText().toString()!=null||!"".equals(et_limit.getText().toString())){
 应该是&&
 if(et_limit.getText().toString()!=null&&!"".equals(et_limit.getText().toString())){

 另外,看看logcat的日志,崩了的日志是什么。

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