2010-01-23 4 views
0

Faire une application simple pour mon android.comment appelez-vous une valeur entrée dans une interface utilisateur à votre classe java?

dans mon interface xml il y a une zone de texte dans laquelle l'utilisateur va entrer un nombre (par exemple: 10). L'ID de cette zone de texte est "input1"

Comment puis-je appeler la valeur de input1 dans Java, puis effectuer un calcul sur elle?

Par exemple ...

= x input1 On suppose que

x + 5 ou x * 2

et pour cette question, comment dois-je la valeur résultante apparaît sous forme de texte constamment mis à jour dans un endroit spécifié sur l'interface utilisateur?

+0

C'est un double de votre question précédente: http://stackoverflow.com/questions/2123993/converting-equations-to-java-for-android Aussi, peut-être vous devriez essayer de lire quelques-uns des tutoriels Android débutants et obtenir un livre Java débutant ou quelque chose. Ces questions sont si fondamentales que je ne peux pas croire que vous avez essayé d'apprendre à faire tout cela par vous-même. –

Répondre

4

Dans le Activity où vous utilisez ce code XML de mise en page, vous feriez ceci:

private EditText input; 
private EditText result; 

public void onCreate(Bundle b) { 
    setContentView(R.layout.my_activity); 

    // Extract the text fields from the XML layout 
    input = (EditText) findById(R.id.input1); 
    result = (EditText) findById(R.id.result); 

    // Perform calculation when input text changes 
    input.addKeyListener(new View.OnKeyListener() { 
     public boolean onKey(View v, int keycode, KeyEvent keyevent) { 
      if (keyevent.getAction() == KeyEvent.ACTION_UP) { 
       doCalculation(); 
      } 
      return false; 
     } 
    }); 
} 

private void doCalculation() { 
    // Get entered input value 
    String strValue = input.getText().toString; 

    // Perform a hard-coded calculation 
    int result = Integer.parseInt(strValue) * 2; 

    // Update the UI with the result 
    result.setText("Result: "+ result); 
} 

Notez que le ci-dessus comprend pas la gestion des erreurs: il suppose que vous avez restreint le champ de texte input1 pour permettre l'entrée des nombres entiers seulement.

+0

J'ai l'impression vague qu'il y a une meilleure façon de déterminer les changements de texte (comme lorsque l'utilisateur quitte le champ de texte), mais je ne l'ai pas utilisé et ne voyais rien d'évident dans les documents API. –

3

Dans votre fichier XML, vous pouvez également définir android:inputType="number" pour autoriser uniquement les numéros en tant qu'entrées.

Questions connexes