Android EditText将字符串转换为整数错误

时间:2015-02-19 04:48:37

标签: android

当我尝试将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();
            }   
        });

3 个答案:

答案 0 :(得分:2)

可能得到:

  

Resources $ NotFoundException:字符串资源ID

因为Toast makeTextCharSequence作为第二个参数。

使用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 :)。