在Android应用程序中将字符串转换为整数

时间:2015-05-11 17:47:32

标签: java android android-edittext

我正在尝试使用Android中的EditText字段将String转换为Integer,但是当我尝试单击按钮时,我的应用程序崩溃了。字符串部分可以工作但问题仅在用户在名为Number。的

的EditText字段中键入整数时
 package com.example.addingvalu;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;
    public class MainActivity extends Activity {

        EditText Number,txtval;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
               }


        public void ViewaNumber(View V1)
        {
            txtval = (EditText) findViewById(R.id.Stringvalue);
            Number = (EditText) findViewById(R.id.Numbers_text);
            //String ab;
            int ed;
            ed = Integer.parseInt(Number.getText().toString());     

            if(txtval.length() != 0)
            {
            Toast.makeText(getBaseContext(), "String " + txtval.getText().toString() ,Toast.LENGTH_LONG).show();
            }
            else if(Number.length() !=0)
            {
            Toast.makeText(getBaseContext(),ed, Toast.LENGTH_LONG).show();
            }
        }

    }

3 个答案:

答案 0 :(得分:0)

使用UpperCase启动方法和属性是一种很好的做法。 还添加一个try / catch来打印可能的错误,并提供一些如何解决它的线索。 尝试:

beginBackgroundTaskWithName

答案 1 :(得分:0)

看看。

  try{
        int ed=Integer.valueOf(number.getText().toString());
    }catch(NumberFormatException e){
    e.printStackTrace();
    }

我希望它能帮到你......!

答案 2 :(得分:0)

我刚跑了这个,主要有两个问题。

  • 如果没有号码,你在空字符串上调用parseInt() 输入。
  • 您正在将int原语传递给Toast.makeText()

您可以将int原语附加到String,这样就有效了:

Toast.makeText(getBaseContext(),"Number " + ed, Toast.LENGTH_LONG).show();

以上相当于:

"Number " + new Integer(ed).toString()

你也可以转换回String Toast:

Toast.makeText(getBaseContext(), String.valueOf(ed), Toast.LENGTH_LONG).show();

以下是修复这两个问题的工作和测试代码:

public class MainActivity extends Activity {

    EditText number,txtval;
    int ed;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void ViewaNumber(View V1)
    {
        txtval = (EditText) findViewById(R.id.Stringvalue);
        number = (EditText) findViewById(R.id.Numbers_text);
        //String ab;



        if(txtval.length() != 0)
        {
            Toast.makeText(getBaseContext(), "String " + txtval.getText().toString() ,Toast.LENGTH_LONG).show();
        }
        else if(number.length() !=0)
        {
            //Make sure number is non-empty before calling parseInt()
            ed = Integer.parseInt(number.getText().toString());
            Toast.makeText(getBaseContext(),"Number " + ed, Toast.LENGTH_LONG).show();
        }
    }
}