使用Integer.parseInt将EditText转换为int

时间:2012-12-05 16:25:26

标签: android

我是编程和Android的新手。我正在尝试一个简单的应用程序而且我被卡住了!

我有两个editTexts(设置为仅接受数字)和一个按钮。想法是在按下按钮时显示两个用户输入的总和。但是,当我单击模拟器中的按钮时,我的应用程序停止工作并强制关闭。

非常感谢任何帮助。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_prevailing_torque);
    Button calculatePrevailing = (Button) findViewById(R.id.button_calculatePrevailing);


    calculatePrevailing.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            TextView prevailingSetting = (TextView) findViewById(R.id.textViewSetting);
            EditText editTextPrevailing = (EditText) findViewById(R.id.editTextPrevailing);
            EditText editTextRecommended = (EditText) findViewById(R.id.editTextReccomended);

            int p = Integer.parseInt(editTextPrevailing.getText().toString());
            int r = Integer.parseInt(editTextRecommended.getText().toString());

            prevailingSetting.setText(r+p);
        }
    });
}

我在这里看过几个类似的问题,但是我找不到任何可以比我已经做过的更多的东西了。但我可能正在寻找错误的地方。 谢谢!

3 个答案:

答案 0 :(得分:1)

你不能将setText()与Integer一起使用,因为它需要CharSequence,你必须使用

prevailingSetting.setText(String.valueOf(r+p));

或只是

prevailingSetting.setText(""+(r+p));

答案 1 :(得分:0)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_prevailing_torque);
   Button calculatePrevailing = (Button) findViewById(R.id.button_calculatePrevailing);
   TextView prevailingSetting = (TextView) findViewById(R.id.textViewSetting);
   EditText editTextPrevailing = (EditText) findViewById(R.id.editTextPrevailing);
   EditText editTextRecommended =(EditText)findViewById(R.id.editTextReccomended);

   calculatePrevailing.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        int p = Integer.parseInt(editTextPrevailing.getText().toString());
        int r = Integer.parseInt(editTextRecommended.getText().toString());
        int s = r+p;
        prevailingSetting.setText(Integer.toString(s));


    }
    });

答案 2 :(得分:0)

好的!如果这是你的问题,那么首先将你的editText值转换为字符串,之后将其转换为整数,如!

 String str1=editTextPrevailing.getText().toString();
 String str2=editTextRecommended.getText().toString();
 int p = Integer.parseInt(str1);
  int r = Integer.parseInt(str2);
  int s = r+p;
   prevailingSetting.setText(""+s);