2012-08-16 3 views
0

Je reçois zéro comme sortie. Je ne pouvais pas trouver des erreursObtenir zéro comme résultat (android)

toute aide serait géniale.

code complet:

package com.equbez.resistor_decoder; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Second extends Activity { 
    int i,b1,b2,b3,result,four; 
    String one,two,three; 
    String arr[]={"black","brown","red","orange","yellow","green","blue","violet","grey","white"}; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 
     EditText etone=(EditText) findViewById(R.id.editText1); 
     one=etone.getText().toString(); 

     for(i=0;i<9;i++) { 
      if(one.equalsIgnoreCase(arr[i])) { 
       b1=i; 
      } 
     } 

     EditText ettwo=(EditText) findViewById(R.id.editText2); 
     two=ettwo.getText().toString(); 

     for(i=0;i<9;i++) { 
      if(two.equalsIgnoreCase(arr[i])) { 
       b2=i; 
      } 
     } 

     EditText etthree=(EditText) findViewById(R.id.editText3); 
     three=etthree.getText().toString(); 

     for(i=0;i<9;i++) { 
      if(three.equalsIgnoreCase(arr[i])) { 
       b3=i; 
      } 
     } 

     result=b2+b2+b3; 
     Button bfour=(Button) findViewById(R.id.button4); 
     bfour.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View V) { 
       TextView tv=(TextView) findViewById(R.id.textView4);  
       tv.setText(""+result); 
      } 
     }); 
    } 
} 

toute aide serait super.

+3

s'il vous plaît être plus précis et son meilleur si vous postez le code snipet ici .... –

+0

Oui je suis d'accord avec Renjith K N. Donnez erreur logcat et que spécifique code. – Dhrupal

+0

S'il vous plaît ne pas lier au code, vous devriez le fournir _here_ (j'ai réglé cela pour vous). – paxdiablo

Répondre

1

utilisation

for(i = 0 ; i< arr.length ;i++) 
do something 

Dans votre code si vous saisissez blanc son ne se rapport

Êtes-vous donner des espaces en inputing la chaîne à la fin? une fois vérifier la longueur de la chaîne que vous donnez en entrée si son exacte ou non

1

Ici, j'ai recodé avec les changements, essayez ce code,

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Second extends Activity 
{ 
    private static int b1,b2,b3,result,four; 
    private String one,two,three; 
    private String arr[]={"black","brown","red","orange","yellow","green","blue","violet","grey","white"}; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.second); 
     EditText etone=(EditText) findViewById(R.id.editText1); 

     one=etone.getText().toString(); 
     for(int i = 0 ; i < 10; i++) 
     { 
      if(one.trim().equalsIgnoreCase(arr[i].trim())) 
      { 
       b1=i; 
       break; 
      } 
     } 

     EditText ettwo=(EditText) findViewById(R.id.editText2); 
     two=ettwo.getText().toString(); 

     for(int i = 0 ; i < 10; i++) 
     { 

      if(two.trim().equalsIgnoreCase(arr[i].trim())) 
      { 
       b2=i; 
       break; 
      } 
     } 

     EditText etthree=(EditText) findViewById(R.id.editText3); 
     three=etthree.getText().toString(); 

     for(int i = 0 ; i < 10; i++) 
     { 
      if(three.trim().equalsIgnoreCase(arr[i].trim())) 
      { 
       b3=i; 
       break; 
      } 
     } 

     result=b2+b2+b3; 
     Button bfour=(Button) findViewById(R.id.button4); 
     bfour.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View V) 
      { 
       TextView tv=(TextView) findViewById(R.id.textView4);  
       tv.setText(String.valueOf(result)); 
      } 
     }); 
    } 
} 
+0

encore je reçois le même zéro que la sortie – user1602110

+0

ok, j'ai encore changé peu, 'private static int b1, b2, b3, résultat, quatre;', veuillez réessayer . – Lucifer

+0

Essayez de donner un journal à la condition if si la condition est remplie ou non (et aussi imprimer une et arr [i] éléments) et vérifier à nouveau –

2

d'abord le EditTextView sera vide lorsque l'activité est appelée. donc vous obtenez toujours une chaîne vide que vous comparez aux Strings dans arr [].

b1, b2, b3 sont initialisés aux valeurs par défaut ie. ,, '0' Le résultat est donc toujours '0'

écrire tout le code getText dans le bfour.setOnClickListener()

ou bien mettre en œuvre et de l'utilisation TextWatcher Méthode onTextChanged

+0

oui vous avez raison –

+0

j'ai essayé maintenant je obtenir la valeur ... j'avais écrit le tout code getText dans le onsetClickListener .. merci bro .... – user1602110

0

J'ai eu le problème. Vous devez exécuter vos 3 boucles après avoir cliqué sur le bouton. vous l'avez fait sur Oncreate(). Donc, vous obtenez toujours 0. voir ci-dessous:

int i, b1, b2, b3, result, four; 
String one, two, three; 
String arr[] = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" }; 
EditText etone, ettwo, etthree; 
Button bfour; 
TextView tv; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    etone = (EditText) findViewById(R.id.editText1); 
    ettwo = (EditText) findViewById(R.id.editText2); 
    etthree = (EditText) findViewById(R.id.editText3); 
    bfour = (Button) findViewById(R.id.button4); 
    bfour.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View V) { 

      one = etone.getText().toString(); 

      for (i = 0; i < arr.length; i++) { 
       if (one.equals(arr[i])) { 
        b1 = i; 
        System.out.println("dhrupal one="+b1); 
       } 
      } 
      two = ettwo.getText().toString(); 

      for (i = 0; i < arr.length; i++) { 

       if (two.equals(arr[i])) { 
        System.out.println("dhrupal one="+two); 
        b2 = i; 
       } 
      } 
      three = etthree.getText().toString(); 

      for (i = 0; i < arr.length; i++) { 
       if (three.equals(arr[i])) { 
        System.out.println("dhrupal one="+three); 
        b3 = i; 
       } 
      } 

      result = b1 + b2 + b3; 
      tv = (TextView) findViewById(R.id.textView4); 
      tv.setText("result=" + result); 

     } 
    }); 
} 
Questions connexes