2012-07-02 3 views
0

J'utilise ici deux EditTexts pour obtenir un nombre entier en tant que valeur ..Comment comparer une chaîne et comment obtenir une valeur de chaîne sélectionnée pour d'autres méthodes?

<EditText 
     android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" /> 
    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" /> 

Maintenant planification Im à faire quelques calculs certains

int i1,i2,i3; 
    String t1,t2,t3; 
    EditText et1,et2,et3; 
    int result,comp; 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     et1=(EditText)findViewById(R.id.editText1); 
     et2=(EditText)findViewById(R.id.editText2); 
     et3=(EditText)findViewById(R.id.editText3); 
    //and also storing to string like 
         t1=et1.getText().toString(); 
        t2=et2.getText().toString(); 
         t3=et3.getText().toString(); 
       i1=Integer.parseInt(t1); 
       i2=Integer.parseInt(t2); 
        i3=Integer.parseInt(t3); 
         comp=i2-i1; 
} 

/ici int x = 10 certains; mon problème est de savoir comment vérifier les conditions i besoin d'obtenir la valeur de comp si son sélectionné (en entrant sur deux EditTexts) Un autre EditText (i3) valsu quelqu'un me aider ..../

 public int CalculateUsage(int customersUsage) 
       { 
     int x=10; 
     comp= customersUsage; 
     if(comp!=0) 
     { 
     customersUsage=comp; 
     result=(customersUsage*x) ; 
     } 

     else if(i3 !=null) 
     { 
     customersUsage=i3; 
     result=(customersUsage*x) ; 
     } 
} 
+0

Il y a un certain nombre de problèmes avec ce code qui le conduirait à ne pas compiler: pas de point-virgule après 'int x = 10', la variable' comp' ne semble pas être déclarée, et finalement, vous essayez de compare 'i3' (une primitive,' int') à null. Quelle est la logique que vous essayez de construire ici? – DPlusV

+0

De plus, il n'y a pas de raison impérieuse de «déclarer toutes les variables par-dessus» - cela rend votre code très difficile à lire. Vous devez déclarer et définir les variables au moment où vous les utilisez. Par exemple: 'EditText et1 = (EditText) findViewById (R.id.editText1);' rendra votre code * beaucoup * plus lisible (pour vous et les autres.) – DPlusV

+0

okey ... j'ai fait mes changements tout à l'heure dites-moi comment pour obtenir des valeurs entières comp, i3 à mes conditions – Crishnan

Répondre

0

entier. parseInt() lève une exception si la représentation String n'est pas réellement un entier. Vous devriez faire un bloc try-catch et doit définir les valeurs à 0 respectivement, ou la valeur par défaut souhaitée

try{ 
    i1=Integer.parseInt(t1); 
} catch(Exception e) { 
    i1=0; 
} 
etc... 

Parce que la valeur d'édition de texte est actuellement « [vide] ».

EDIT: Les textes d'édition sont actuellement vides car vous ne leur avez pas encore défini quelque chose. L'ems = "10" que vous avez dans votre mise en page n'est pas la valeur du texte d'édition.

+0

oui son travail merci mec ... mais j'ai besoin de réinitialiser i1, i2 quand je sélectionne i3 sinon i3 réinitialiser tandis que i1 & i2 sélectionné. Que faire ? – Crishnan

+0

quand vous voulez dire sélectionné? taper une valeur? entrer un bouton? dans quel "événement"? – 10s

+0

ha après chaque action terminée j'ai besoin de réinitialiser tout le texte .. j'ai essayé, mais il obtient la valeur nulle – Crishnan

Questions connexes