2013-02-23 12 views
9

Mi chiedo come convertire un ingresso EditText ad un int, ho l'input dell'utente un numero, esso che lo divide da 8.Conversione di EditText in int? (Android)

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" > 
+0

vedere questa risposta http://stackoverflow.com/questions/4903515/how-do-i-return-an-int-from -edittext-android –

risposta

3

sono molto assonnato e stanco in questo momento, ma non sarebbe questo lavoro ?:

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

O

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

Per il primo, ha detto "et non può essere risolto" Per il secondo, ha detto "Integer.parseInt non può essere risolto per un tipo" – user2101454

+0

Ho modificato la risposta (in attesa di revisione tra pari), ma il problema con il secondo caso è il "nuovo" spurio, basta rimuovere quello. –

+0

Va bene, per lo sTextFromET, si dice "sTextFromET non può essere risolto in una variabile", cosa devo fare? (Scusa, sono nuovo di Java e programmazione in generale.) – user2101454

8

Usa Integer.parseInt, e assicurarsi che si cattura l'NumberFormatException che getta se l'ingresso non è un numero intero.

7

che devi usare.

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

se si è consentito solo immettere il numero quindi impostare la proprietà EditText.

android:inputType="number" 

se questo è utile quindi accettare altrimenti metti il ​​tuo commento.

+0

Ha detto "et non può essere risolto" – user2101454

+0

possibile utilizzare incollare il codice? – Harshid

+0

EditText et = (EditText) findViewById (R.id.ettext); come questo. – Harshid

1

Prova questa

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

[Garantito per non funzionare] (http://developer.android.com/reference/java/lang/Object.html#toString()). Il link è un suggerimento. –

0

Prova la linea di seguito per convertire EditText a intero.

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

Ho avuto lo stesso problema io stesso. Non sono sicuro se hai farlo funzionare, però, ma quello che ho dovuto era:

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

La terza riga di codice ha causato l'applicazione in crash senza utilizzare il .getText() prima della .toString() .

Solo per riferimento, ecco la mia XML:

<EditText 
    android:id="@+id/input_cipherValue" 
    android:inputType="number" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
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);