2010-04-23 16 views
5

Sono un debuttante per Android. Sto pensando di implementare una semplice calcolatrice in Android per ottenere una sospensione delle basi in Android. Voglio visualizzare una tastiera con numeri e operazioni matematiche e quando l'utente preme i tasti il ​​numero corrispondente viene visualizzato in testo di modifica. Ho provato a usare gettext() e ad aggiornare il contenuto del testo di modifica ma mostra solo il contenuto del pulsante premuto. Inoltre, come faccio a leggere il contenuto del pulsante in modo da eseguire operazioni matematiche nel codice? Qualsiasi aiuto sarebbe molto apprezzato.Android: come impostare il contenuto di un testo Modifica da un clic del pulsante?

saluti,

Primal

risposta

5

trattare la didascalia del pulsante come i dati reali è qualcosa che è la pratica più o meno accettabili solo quando si sta facendo i tasti cifre in un calcolatore, in modo da don non so se questo vale per 'Android basics';)

Indipendentemente da;

Si sta affermando di voler visualizzare il numero corrispondente, quando l'utente preme un tasto (pulsante?). E poi dici getText mostra solo il contenuto del pulsante premuto ... Non è esattamente quello che stai chiedendo? Potrebbe essere necessario fornire un po 'di codice e mostrarci cosa non funziona nel modo desiderato. Ma se un pulsante è il testo '8', e si desidera trattare, che come un otto in operazioni matematiche, è necessario analizzarlo:

Integer myNumber = Integer.parse(myButton.getText()); 

... che ovviamente un'eccezione se il testo di myButton non si risolve in un numero intero.

EDIT, AL COMMENTO

Dalla spiegazione del problema che hai dato nel tuo commento, sì, setText() ripristina il testo interamente al valore che è stato passato, ma è possibile utilizzare una combinazione di questo e getText() se si desidera solo per aggiungere qualcosa al valore corrente:

myEditText.setText(myEditText.getText() + " " + myButton.getText()); 
+0

non riuscivo a pensare a qualsiasi altra applicazione :(Ogni suggerimento in questo aspetto sono i benvenuti :) getText() mi dà quello che voglio. Il problema è che non so come popolare un EditText che lo usa. L'unico metodo che conosco è setText() e aggiorna il contenuto di EditText ad ogni clic del pulsante. – primpap

+0

ok, guarda il mio aggiornamento =) –

6

per impostare il contenuto di un EditText:

EditText text = (EditText) findViewById(R.id.your_text); 
text.setText("Display this text"); 

Invece di cercare di tirare il testo fuori dei pulsanti e usarlo come un intero, vorrei solo aggiungere un click ascoltatore a ciascuno che "conosce" il valore del suo pulsante:

Button button = (Button) findViewById(R.id.num_1); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     // Do something with the value of the button 
    } 
}); 
2

Per impostare il testo del pulsante nella EditText:

EditText edittext=(EditText)findviewById(R.id.edittext); 
Button num1=(Button)findViewById(R.id.button_num1); 
Button num2=(Button)findviewById(R.id.button_num2); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     edittext.append("1"); 
    } 
}); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     edittext.append("2"); 
    } 
}); 

per semplice calcultaor vedere here vi aiuterà a creare una calcolatrice in Android.

+2

Benvenuti in Stack Overflow! Prenderesti in considerazione l'aggiunta di alcune narrative per spiegare perché questo codice funziona e cosa ne fa una risposta alla domanda? Nota, ad esempio, in che modo le altre risposte pubblicate qui spiegano il loro codice? –

4

Provare il seguente codice.

EditText x = (EditText)findviewbyid(R.id.abc); 

Non utilizzare x.setText(); utilizzare invece x.append(Your variable or value here). Questo non cancellerà il testo proveniente dal pulsante precedente.

+0

Il metodo 'append (" ")' mi ha salvato la vita! –

Problemi correlati