无法从三个EditText获得结果?

时间:2011-08-05 18:28:43

标签: java android integer textview android-edittext

我试图从用户填写的三个EditText框中获取数字,然后通过一些简单的数学和用户按下按钮,需要通过textView获得答案。此外,每当我在模拟器上启动此应用程序时,它表示一旦我单击按钮转到此布局和代码,它需要强制关闭。这是代码:

                 package com.app.one;

import com.app.one.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class monthlyp extends Activity {
int x = 10;
int y= 10;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.monthlyp);

      final TextView input = (TextView) findViewById(R.id.editone);           
      final Button btn = (Button) findViewById(R.id.equals);
      final EditText textView13 = (EditText) findViewById(R.id.textView13); 

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


            y = Integer.parseInt(input.getText().toString());
            textView13.setText(String.valueOf(y));
        }
      });       
}
    }

我知道它只有一个EditText区域,但是因为我需要帮助再添加两个,并且能够将它们用作整数来加/减/除/乘。 xml有三个edittext框和一个等于按钮,可以解决输入的内容。感谢您的帮助,如果您需要更多信息,请与我联系。

4 个答案:

答案 0 :(得分:2)

首先,您的输入显示为TextView,输出为EditText。这似乎是倒退。如果您的XML是正确的并且您的输入是EditText,则可能在尝试将其转换为TextView时遇到问题。

答案 1 :(得分:1)

马上做两件事:

  1. 您将字符串转换为整数,然后再次返回整数以将其放入另一个字段中。这很糟糕,它被称为悠悠球代码。保存字符串值并存储它。

  2. 如果未在EditText中放入有效整数,Integer.parseInt()可以抛出NumberFormatException。您需要尝试/捕获该异常并处理无效情况,最好通过在编辑文本上调用setError()。

  3. http://developer.android.com/reference/java/lang/Integer.html#parseInt%28java.lang.String%29

    编辑:是的,就像其他人说的那样..不要将你的EditText命名为“textView13”

答案 2 :(得分:0)

您说输入是文本视图

final TextView input = (TextView) findViewById(R.id.editone);    

然后你得到了那个textview的整数值

y = Integer.parseInt(input.getText().toString());

我建议那不是你想要的

答案 3 :(得分:0)

您似乎从TextView获取输入并将输出发布到EditText。不应该是相反的吗?