将EditText转换为int? (机器人)

时间:2013-02-23 05:34:46

标签: android integer android-edittext int

我想知道如何将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_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" >

11 个答案:

答案 0 :(得分:21)

你必须使用。

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

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

android:inputType="number"

如果这有用,那么接受另外发表评论。

答案 1 :(得分:8)

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

答案 2 :(得分:4)

我现在非常困倦和疲倦,但这不会起作用吗?:

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

<强> OR

try
{
    int nIntFromET = Integer.parseInt(sTextFromET);
}
catch (NumberFormatException e)
{
    // handle the exception
}

答案 3 :(得分:3)

试试这个,

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

答案 4 :(得分:2)

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

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

答案 5 :(得分: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" />

答案 6 :(得分:1)

您可以这样使用

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

答案 7 :(得分: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);

答案 8 :(得分:0)

您可以将parseInt与try and 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();

答案 9 :(得分:0)

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

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

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

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

这将起作用

答案 10 :(得分:0)

在Kotlin中,您可以这样做。

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