25

我想知道如何将EditText输入转换为 int,我让用户输入一个数字,然后将其除以 8。

MainActivity.java:

@SuppressWarnings("unused")
public void calcSpeed(View view)
{       
    setContentView(R.layout.activity_speed);     
    
    final TextView mTextView = (TextView) findViewById(R.id.textView3);
    mTextView.setText("You should be getting: " +netSpedCalcd);
}

活动主.xml:

    <EditText
    android:id="@+id/editText1" 
    android:inputType="number"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="62dp"
    android:ems="10" >
4

12 回答 12

50

你必须使用。

String value= et.getText().toString();
int finalValue=Integer.parseInt(value);

如果您只允许输入数字,则设置 EditText 属性。

android:inputType="number"

如果这有帮助,请接受否则发表您的评论。

于 2013-02-23T05:43:28.370 回答
10

使用Integer.parseInt,并确保捕获在输入不是整数时抛出的 NumberFormatException。

于 2013-02-23T05:39:01.213 回答
9

我现在很困很累但是这行不通吗?:

EditText et = (EditText)findViewById(R.id.editText1);
String sTextFromET = et.getText().toString();
int nIntFromET = new Integer(sTextFromET).intValue();

或者

try
{
    int nIntFromET = Integer.parseInt(sTextFromET);
}
catch (NumberFormatException e)
{
    // handle the exception
}
于 2013-02-23T05:36:58.060 回答
5

尝试这个,

EditText x = (EditText) findViewById(R.id.editText1);
int n = Integer.parseInt(x.getText().toString());
于 2014-11-17T06:23:43.330 回答
3

您可以将 parseInt 与 try 和 catch 块一起使用

try
{
    int myVal= Integer.parseInt(mTextView.getText().toString());
}
catch (NumberFormatException e)
{
    // handle the exception
    int myVal=0;
}

或者您可以创建自己的 tryParse 方法:

public Integer tryParse(Object obj) {
    Integer retVal;
    try {
        retVal = Integer.parseInt((String) obj);
    } catch (NumberFormatException nfe) {
        retVal = 0; // or null if that is your preference
    }
    return retVal;
}

并在您的代码中使用它,例如:

int myVal= tryParse(mTextView.getText().toString());

注意:下面没有try/catch的代码会抛出异常

int myVal= new Integer(mTextView.getText().toString()).intValue();

或者

int myVal= Integer.decode(mTextView.getText().toString()).intValue();
于 2018-10-05T23:24:24.940 回答
2

尝试下面的行将 editText 转换为整数。

int intVal = Integer.parseInt(mEtValue.getText().toString());
于 2016-06-13T06:02:37.850 回答
1

我自己也有同样的问题。我不确定你是否让它工作,但我必须做的是:

EditText cypherInput;
cypherInput = (EditText)findViewById(R.id.input_cipherValue);
int cypher = Integer.parseInt(cypherInput.getText().toString());

第三行代码导致应用程序在没有使用 .toString() 之前的 .getText() 的情况下崩溃。

仅供参考,这是我的 XML:

<EditText
    android:id="@+id/input_cipherValue"
    android:inputType="number"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
于 2016-11-09T21:16:12.680 回答
1

你可以这样使用

 EditText dollar=(EditText) findViewById(R.id.money);
 int rupees=Integer.parseInt( dollar.getText().toString());
于 2018-09-03T11:40:45.867 回答
1

首先,EditText使用以下代码在 android studio 的资源中找到您的资源:

EditText value = (EditText) findViewById(R.id.editText1);

然后将EditTextvalue 转换为 a string,然后将 value 解析为 a int

int number = Integer.parseInt(x.getText().toString());

这将起作用

于 2019-12-29T14:11:34.833 回答
0
int total_Parson = Integer.parseInt(etRegularTickets.getText().toString());
int ticket_price=Integer.parseInt(TicketData.get(0).getTicket_price_regular());
total_ticket_amount = ticket_price * total_Parson;
etRegularPrice.setText(""+total_ticket_amount);
于 2017-07-06T04:57:54.587 回答
0

在 Kotlin 中,您可以做到这一点。

val editText1 = findViewById(R.id.editText)
val intNum = editText1.text.toString().toInt()
于 2020-06-02T04:20:51.833 回答
0

在 kotlin 中,由于扩展功能,有最短的方法

fun EditText.toInt(): Int {
    return this.text.toString().toInt()
}

在您的代码中使用它,如下所示:

mEditText.toInt()
于 2022-01-16T13:43:52.843 回答