2015-02-05 11 views
-1

mph의 변환 km/h 앱이 있습니다. 양식이 비어 있고 버튼 변환을 누르면 응용 프로그램이 닫힙니다. 양식이 비어있을 경우 validate 기능이 필요하다는 것을 알고 있으며 양식을 비워 둘 수는 없지만 내 문제의 코드를 찾을 수 없다는 메시지를 사용자에게 표시합니다.양식이 비어있는 경우 Android 앱 종료 - 인증 양식이 필요합니다

내 온 클릭 코드는 다음과 같습니다

 buttonConverter.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      double Value1 = Double.valueOf(txtKmhUser.getText().toString()); 
      double Value2 = Value1/1.60; 
      Result.setText(String.valueOf(Value2)); 

     } 


    }); 
+1

EditText가 비어 있는지 확인해야합니다. 왜냐하면 ** ""! = 0 **. –

답변

0

Double.valueOf ("")가 숫자 형식 예외를 throw하기 때문에 앱이 충돌하는 이유가 있습니다. 따라서 처리하기 전에 양식을 확인하거나 예외에 대한 try/catch를 사용해야합니다.

buttonConverter.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View arg0) { 
     if(txtQuilometros.getText().toString().length() > 0) { 
      double Value1 = Double.valueOf(txtQuilometros.getText().toString()); 
      double Value2 = Value1/1.60; 
      Result.setText(String.valueOf(Value2)); 
     } else { 
      txtQuilometros.setError("Please enter a value"); 
    } 
}); 
+0

아담 W. 나는 당신의 도움으로이 경우에 내 응용 프로그램이 닫히고 한 번 시도해 볼 논리와 오류가 "있는 경우"를 이해합니다. 양식에 알림이 표시되고 앱이 중지됩니다. 나중에 나는 setError 명령을 Marcus의 도움으로 섞어서 Toast 메시지를 사용한다. 앱이 완벽 해집니다! 죄송합니다, 저의 영어는 –

+0

입니다. 답변 중 하나를 수락해야합니다. 행복한 코딩. –

0

그냥

buttonConverter.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     String str=txtQuilometros.getText().toString(); 
     if(str.length()>0) 
     { 
      double Value1 = Double.valueOf(str); 
      double Value2 = Value1/1.60; 
      Result.setText(String.valueOf(Value2)); 
     } 

    } 


}); 
+0

변경 사항을 잊어 버렸지 만 잊어 버렸습니다 ... 어떤 변경 사항 ... 알림을 주셔서 감사합니다. – MDMalik

+0

작성자에게 인용하기 : "양식을 비워 둘 수 없다는 메시지를 사용자에게 표시하십시오." – Marcus

0

당신의 텍스트를 편집 확인 변환하기 전에 유효성 검사를 할 수는

if(!value1.equals(null)) 
1

당신은 축배를 표시 할 수 있습니다 변환하기 전에 null 값을 가지고 EditText이 비어있는 경우

@Override 
    public void onClick(View arg0) { 
     String yourString = txtKmhUser.getText().toString(); 
     if(!yourString.equals("")){ 
      double Value1 = Double.valueOf(yourString); 
      double Value2 = Value1/1.60; 
      Result.setText(String.valueOf(Value2)); 
     }else{ 
      Toast.makeText(this, "Form can not be blank", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

Marcus 매우 감사합니다. 나는 당신의 토스트 방법을 아담 W 대답과 섞어서 사용했고 나는 사용자에게 2 개의 경고를 받았다. 사실 짧은 경고 및 양식 초점입니다. 죄송합니다, 내 영어가 –