2011-09-05 101 views
1

我正在java中製作一個android應用程序。基本上我有一個問題..我有一個按鈕,它將刪除字符串中的最後一個字符。並且此按鈕將用於很多,如果用戶按下按鈕,而字符串是空的應用得到一個錯誤信息,並關閉..我想避免這種情況不知爲什麼...應用程序停止工作

這是onClickListener當前代碼..

back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
       value = value.substring(0, value.length() - 1); 
       numbersArea.setText(value); 
     } 

任何想法我將如何做到這一點?自從昨天晚上嘗試完所有的想法後,

+0

檢查是否(value!= null && value!=「」){value = value.substring(0,value.length() - 1); numbersArea.setText(value); } –

+0

用於字符串間平等的testung必須用equals來完成,而不是== – njzk2

回答

1

讓你的聽衆是這樣的:

back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

       if(!value.equals("") && value != null) { 
        value = value.substring(0, value.length() - 1); 
        numbersArea.setText(value); 
       } 
     } 

基本上,它的作用是驗證該字符串是空的,空的不同,如果它不是,它在if聲明進入。

請讓我知道你是否有更多疑問。

謝謝。

+0

Fantasitic help!我真的很喜歡它..我以前同樣的事情,但我只寫了!value.equals(「」)沒有別的.. – Rakso

+0

TextUtils.isEmpty(值)是一個更清潔的方式來測試空白。您的示例崩潰值爲null或value.length == 0 – njzk2

3

substring之前,請確保該字符串的長度> 0

if (!value.isEmpty()) { 
    value = value.substring(0, value.length() - 1); 
    numbersArea.setText(value); 
} 

如果你不這樣做檢查,在某些時候字符串將具有零長度和substring()將拋出IndexOutOfBoundsException