【问题标题】:Android - How to take an EditText (numbers) then convert it to an integer to use it for math?Android - 如何获取 EditText(数字)然后将其转换为整数以将其用于数学?
【发布时间】:2025-11-21 20:55:01
【问题描述】:

我想知道如何获取用户可以在其中输入数字的 EditText 区域,然后将其设为整数,以便在程序中用于加法、减法、除法等。基本上我需要测试 enter能够在代码中使用的计算器中使用,然后需要将其放入 TextView 或字符串中,以便用户可以看到最终答案。

更多信息: 我有三个 EditText 区域,用户必须填写所有三个区域,然后按“等于”,它会告诉他们答案,所有数学等都需要在代码中,因此用户只需输入信息而不实际计算任何事物。 感谢您的帮助,如果您需要更多信息,请询问我。

执行此操作的最佳方法和代码对我有很大帮助。

我已经添加了建议的代码,但在 parseInt 上仍然出现错误,我仍然需要添加一个按钮来计算在 EditText 区域中输入的数字。我该怎么做?抱歉,我对 Java 和 Android 开发持公平态度。

             package com.example.one;


             import com.example.one.R;

             import android.app.Activity;
             import android.content.Intent;
             import android.os.Bundle;
             import android.text.Editable;
             import android.view.View;
             import android.widget.Button;
             import android.widget.EditText;

             public class monthlyp extends Activity{

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


   EditText editone = (EditText) findViewById(R.id.editone);
   EditText editoneValue = (EditText) editone.getText();
   int editoneNum = Integer.parseInt(editoneValue);

    }
   ;

   }

【问题讨论】:

    标签: java android integer textview android-edittext


    【解决方案1】:

    您必须在 EditText 的属性中更改 Input type。对于数字,您有三个选择:numbernumberSignednumberDecimal。 这取决于你想要什么。

    然后,如果您想将 EditText 上的字符串转换为整数,您可以这样做:

    int value = new Integer(myEditText.getText().toString()).intValue;
    

    【讨论】:

      【解决方案2】:

      首先,获取EditText的一个实例:

      EditText myEdit = (EditText) findViewById(R.id.edittext1);
      

      然后获取当前正在显示的字符串:

      String myEditValue = myEdit.getText().toString();
      

      然后将其解析为整数:

      int myEditNum = Integer.parseInt(myEditValue);
      

      【讨论】:

      • "String myEditValue = myEdit.getText();" - EditTextgetText() 方法返回一个 Editable 类型的对象,你需要使用 @987654327 @ 获取实际文本。
      • 非常感谢。要在用户按下“Equals”之类的按钮后向用户显示最终结果,我是否要将整数转换回字符串或 TextView?我知道我可以将整数用于我的程序/应用程序的数学部分,但我不确定如何在用户按下按钮后将计算结果的答案发布给用户。
      • Austin,在您计算出最终结果后,只需使用 .setText(result) 方法(我假设您使用的是 TextView)。不用担心将整数结果转换为字符串。
      • 你应该小心不要在 EditText 中超过 Integer.MAX_VALUE 否则你会得到 NumberFormatException。
      【解决方案3】:
      EditText myEdit = (EditText) findViewById(R.id.edittext1);
      
      String myEditValue = myEdit.getText().toString();
      
      int myEditNum = Integer.parseInt(myEditValue);
      
      myEditNum.setText(textOut1);
      

      我正在使用上述内容将用户输入作为数字格式。但是,当我尝试使用 setText() 方法在 TextView(textOut1) 中显示 int myEditNum 时,我收到 setText 方法的错误(说:''不能在原始类型 int 上调用 setText(TextView)'')。

      我还尝试(如下)将 int myEditNum 转换为 String,然后将其显示到 TextView,但仍然无法正常工作,因为我收到了 setText 方法的以下错误:''The method setText(TextView) is undefined对于类型字符串''。 EditText myEdit = (EditText) findViewById(R.id.edittext1);

      String myEditValue = myEdit.getText().toString();
      
      int myEditNum = Integer.parseInt(myEditValue);
      
      
      String texting = Integer.toString(myEditNum);
      
      texting.setText(textOut1);
      

      为什么会发生这种情况,我该如何解决?

      【讨论】:

        【解决方案4】:

        你应该使用:

        myEdit.setText(myEditValue);
        

        myEditValuemyEditNum 的字符串版本。

        【讨论】: