问题阅读字符串

时间:2012-03-01 16:17:49

标签: android

我的基本添加程序存在问题一切正常,例如键入值并测试是否没有错,但是当我打开程序并将TextView留空并按下按钮检查时会出现问题,程序终止。
我试过转换String =“”;到一个整数,但我的程序没有启动。
我相信它只比较整数而不是字符串,但我不确定如何克服它 任何帮助将不胜感激。

int one=1, two=2;
ans = one + two;
TextView = Value;
TextView = i;

Button one,check;

i = (TextView) findViewById(R.id.display);
Value = (TextView) findViewById(R.id.answer);

one= (Button) findViewById(R.id.one);
one.setOnClickListener(this);

check= (Button) findViewById(R.id.check);
check.setOnClickListener(this);


        public void onClick(View v) {

        switch(v.getId()){  


        case R.id.one:
            ans.append("1");
            break;

        case R.id.check:

        if (answer ==(Integer.parseInt(Value.getText().toString())))
            {

             display.setText(one+"+"+two);
             ans.setText("");

            }

           else
               {
           i.setText("Invalid");
               }

            break;
}
}

4 个答案:

答案 0 :(得分:0)

您需要验证输入。您必须确保用户在文本框中输入的内容是有效的而不是垃圾。如果用户输入垃圾,则使用try catch轻轻处理异常,并通过Toast消息告知用户输入无效。

希望您了解编程的这个简单方面。

答案 1 :(得分:0)

你的问题在这里:

Integer.parseInt(Value.getText().toString())

来自文档:

  

抛出:“NumberFormatException - 如果字符串不包含   可解析的整数。“

所以你应该把这一行包装在try / catch中(捕获NumberFormatException),并告诉用户如果抛出异常,他们的输入是无效的。进一步将编辑文本的输入类型设置为“数字”。

答案 2 :(得分:0)

您的代码存在很多问题: 定义int tempVal = 0;

1) TextView = Value; is not correct I guess. TextView and EditText are two different things.

2) Value = (TextView) findViewById(R.id.answer);
I thik it should be 
EditText txtVal= (EditText) findViewById(R.id.answer);
3) 
String txtValStr= txtVal.getText();

4) if (txtValStr != null || !"".equals(txtValStr))
{
 tempVal = new Integer(txtValStr).intValue();
}


inside case:

if(tempVal == answer)
{
....
}

答案 3 :(得分:0)

使用if语句

String s = Value.getText().toString();
if (s != null && !s.matches("")){
    // Do your code
} else {
    // use a toast to prompt them to enter something
}

检查字符串是否为空或空,如果不是,则可以解析它。