2012-08-16 70 views
0

我得到零作为输出。我无法找到任何错误得到零结果(android)

任何帮助将是伟大的。

全码:

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); 
      } 
     }); 
    } 
} 

任何帮助将是巨大的。

+3

如果您发布的代码,请更加具体和更好snipet这里.... – 2012-08-16 04:32:29

+0

是的,我与RenjithķN.同意给logcat的错误,也该特定码。 – Dhrupal 2012-08-16 04:34:15

+0

请不要链接到代码,你应该提供它_here_(我已经解决了你的问题)。 – paxdiablo 2012-08-16 04:35:23

回答

1

使用

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

在你的代码,如果你正在输入白色的没有得到比较

你给任何空格输入查询的同时,在结束的字符串?一旦检查字符串的,你给输入长度是否其确切与否

1

在这里,我已经重新编码与变化,尝试这个代码,

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

再次我得到相同的零作为输出 – user1602110 2012-08-16 05:02:20

+0

好吧,我改变了一点点,'私人静态INT B1,B2,B3,结果,四;',请再试一次。 – Lucifer 2012-08-16 05:04:27

+0

尝试在if条件中给出日志条件是否满足(并打印一个和arr [i]元素)并再次检查 – 2012-08-16 05:05:07

2

最初EditTextView将是空的时该活动被称为。所以你总是得到一个空字符串,你正在比较字符串[]中的字符串。

B1,B2,B3被初始化为默认值即,, '0',因此结果始终是 '0'

编写所有的getText代码在bfour.setOnClickListener()

否则执行TextWatcher和使用onTextChanged方法

+0

是的,你是对的 – 2012-08-16 05:05:43

+0

我现在尝试我得到的价值...我已经写了所有getText代码内的onsetClickListener ..谢谢兄弟.... – user1602110 2012-08-16 05:11:19

0

我得到了问题。点击按钮后,您必须运行所有3个循环。你已经在Oncreate()上做了这个。所以,你总是得到0 见下图:

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); 

     } 
    }); 
}