当我尝试将editText字符串转换为整数时,我的应用程序被强制关闭,我不知道为什么。我认为我正确地将其转换。 应该是什么问题?提前谢谢。
edX = (EditText) findViewById (R.id.dh);
path.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String holder = edX.getText().toString();
int a = Integer.parseInt(holder);
Toast.makeText(getApplicationContext(), a, Toast.LENGTH_SHORT).show();
}
});
答案 0 :(得分:2)
可能得到:
Resources $ NotFoundException:字符串资源ID
因为Toast makeText
将CharSequence
作为第二个参数。
使用String.valueOf
获取int:
Toast.makeText(getApplicationContext(),
String.valueOf(a), Toast.LENGTH_SHORT).show();
答案 1 :(得分:1)
修改你的祝酒词如下:
Toast.makeText(getApplicationContext(), String.valueOf(a), Toast.LENGTH_SHORT).show();
答案 2 :(得分:0)
你正面临着
android.content.res.Resources$NotFoundException: Resource ID #0x0
使用下面的代码,它将明确解决您的问题。
path.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String holder = edX.getText().toString();
int a=-1;
try {
a = Integer.parseInt(holder);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(a==-1){
Toast.makeText(getApplicationContext(), "INVALID NUMBER INPUT", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), a+"", Toast.LENGTH_SHORT).show();
}
}
});
黑客是,Toast类只能接受整数资源ID和字符串对象。我将int转换为String :)。