在Android中将EditText转换为整数

时间:2017-07-12 21:21:23

标签: java android

我检查了这个网站如何在java(android)中将字符串转换为整数类型....其中一个建议是使用(integer.parseint)我使用它,当我运行我的应用程序时,它说我的应用程序我已经停止了下面的代码。

 public void clickable (View view){
           EditText mytext = (EditText) findViewById(R.id.Creat);
           int number = Integer.parseInt(mytext.getText().toString());
           Toast.makeText(getApplicationContext(), number ,Toast.LENGTH_LONG).show();

   }

我无法弄清楚代码有什么问题?!

3 个答案:

答案 0 :(得分:1)

将EditText mytext变量声明为全局变量,然后在Activity的Oncreate()方法中初始化它。然后您的可点击方法如下所示:

public void clickable (View view){
       int number = Integer.parseInt(mytext.getText().toString());
       Toast.makeText(getApplicationContext(), mytext.getText().toString(), Toast.LENGTH_LONG).show();
}

Obeserve Toast.makeText()方法的第二个参数是要使用的字符串资源的资源ID,或者它可以是格式化文本。在您的代码中,您传递了一个整数作为不存在的资源ID。所以你得到ResourcesNotFoundException。

答案 1 :(得分:0)

你传入Integer.parseInt()的字符串是什么?如果它不是整数,则程序将遇到NumberFormatException。我不确定这是否存在问题,但我不确定你将什么传递给Integer.parseInt()。

答案 2 :(得分:0)

Toast.makeText有很多实现。当您传递int作为第二个参数时,将执行以下实现:

Toast makeText(Context context, @StringRes int resId, @Duration int duration)

如果找不到ID为ResourcesNotFoundException的资源,此实现将抛出resId

要将number输出为String,您需要转换它:

Toast.makeText(getApplicationContext(), String.valueOf(number), Toast.LENGTH_LONG).show();