2013-05-24 36 views
7

Tôi đã biết điều gì gây ra lỗi này, tôi chỉ không biết cách xử lý trường hợp khi người dùng không nhập bất kỳ thứ gì vào hộp thoại, sau đó nhấn nút phân tích chuỗi thành một int. Nó không thể phân tích một chuỗi rỗng thành một int, do đó, nó ném một lỗi. Tôi đã thực hiện một số nghiên cứu về cách thực hiện điều này, nhưng chưa tìm thấy kết quả khả quan nào hoạt động.java.lang.NumberFormatException: int không hợp lệ: "" trong android

Sự cố: Làm thế nào để bạn kiểm tra xem hộp thoại có văn bản trong đó hay không, trước khi nó cố chạy phần còn lại của mã.

Trả lời

10

Một số mã sẽ giúp với cú pháp nhưng về cơ bản

if ("".equals(text) // where text is the text that you get from an EditText or wherever you get it 
{ // give message to enter valid text; } 

Ngoài ra, bạn có thể bao quanh với một try/catch và bắt một NumberFormatException sau đó in ra thông báo

1

Sự cố: Làm cách nào để kiểm tra xem hộp thoại có văn bản trong đó hay không trước khi nó cố chạy phần còn lại của mã.

Giải pháp: An if.

int parseToInt(String maybeInt, int defaultValue){ 
    if (maybeInt == null) return defaultValue; 
    maybeInt = maybeInt.trim(); 
    if (maybeInt.isEmpty()) return defaultValue; 
    return Integer.parseInt(maybeInt); 
} 

Nếu bạn có thể dành ra một số phụ thuộc thêm, tôi muốn kéo trong Common Lang StringUtils, sử dụng StringUtils.isBlank thay vì cắt/isEmpty, bởi vì đó cũng xử lý Unicode.

1
String text = editText.getText().toString(); 
    if(!text.equals("") && text.matches("^\\d+$")){ 
     cast to int 
    } 
0

những lỗi tương tự đã gây My Ứng dụng để Crash. Ans là Simple- Đặt mã kiểm tra vào

try {}

catch()

Khối gây ngoại lệ, như mã này snip.This Làm việc cho tôi.

public void setAge(String age) { 

    final Calendar c = Calendar.getInstance(); 
    int yearCurrent = c.get(Calendar.YEAR); 
    try { 
     int yearPrev = (int) Integer.parseInt(age.substring(0, 4));//this line was causing the error 
     int ageYear=yearCurrent-yearPrev; 
     ageUser="Age : "+Integer.toString(ageYear); 
    } 
    catch(NumberFormatException numberEx) { 
     System.out.print(numberEx); 
    } 


} 
Các vấn đề liên quan