2011-09-05 99 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