将 EditText 转换为 int? (安卓)

Posted

技术标签:

【中文标题】将 EditText 转换为 int? (安卓)【英文标题】:Converting EditText to int? (Android) 【发布时间】:2013-02-08 20:31:19 【问题描述】:

我想知道如何将 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);

activity_main.xml:

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

【问题讨论】:

看到这个答案***.com/questions/4903515/… 【参考方案1】:

你必须使用。

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

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

android:inputType="number"

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

【讨论】:

EditText et =(EditText)findViewById(R.id.ettext);像这样。 EditText et =(EditText)findViewById(R.id.editText1); int nIntFromET = Integer.parseInt(文本);它说“文本无法解析为变量”【参考方案2】:

使用Integer.parseInt,并确保捕捉到如果输入不是整数则抛出的 NumberFormatException。

【讨论】:

【参考方案3】:

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

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

【讨论】:

第一个说“et无法解析” 第二个说“Integer.parseInt无法解析为一个类型” 我已经编辑了答案(等待同行评审),但第二种情况的问题是虚假的“新”,只需将其删除。 好吧,对于 sTextFromET,它说“sTextFromET 无法解析为变量”,我该怎么办? (抱歉,我是 Java 和一般编程新手。) 在您尝试从中获取值的 EditText 实例上将 sTextFromET 替换为对 getText() 的调用。 我已经尝试了以下在不同的 *** 问题中发现的方法,但我得到了 NullPointerException。 pastebin.com/LaXYb4LC【参考方案4】:

试试这个,

EditText x = (EditText) findViewById(R.id.editText1);
int n = Integer.parseInt(x.getText().toString());

【讨论】:

Guaranteed to not work。该链接是一个提示。【参考方案5】:

您可以将 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();

【讨论】:

【参考方案6】:

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

int intVal = Integer.parseInt(mEtValue.getText().toString());

【讨论】:

【参考方案7】:

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

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_
    android:layout_ />

【讨论】:

【参考方案8】:

你可以这样使用

 EditText dollar=(EditText) findViewById(R.id.money);
 int rupees=Integer.parseInt( dollar.getText().toString());

【讨论】:

【参考方案9】:

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

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

然后将EditText的值转换为string,然后将值解析为int

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

这会起作用

【讨论】:

【参考方案10】:
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);

【讨论】:

【参考方案11】:

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

val editText1 = findViewById(R.id.editText)
val intNum = editText1.text.toString().toInt()

【讨论】:

【参考方案12】:

在 kotlin 中,由于 Extension Function

有最短的方法
fun EditText.toInt(): Int 
    return this.text.toString().toInt()

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

mEditText.toInt()

【讨论】:

以上是关于将 EditText 转换为 int? (安卓)的主要内容,如果未能解决你的问题,请参考以下文章

将 2.0000000000000000000e+00 类型数转换为 int?

将多个edittext值转换为arraylist

怎么把float型转换成int

如何在editText.setText()中插入一个字符串

float型怎样强制转换成int型

怎么把float型转换成int