0

出力としてゼロになっています。エラーは見つかりませんでした

どんな助けでも素晴らしいでしょう。

完全なコード:

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

どんな助けでも素晴らしいでしょう。

4

4 に答える 4

2

アクティビティが呼び出されると、最初は EditTextView は空になります。そのため、arr[] の文字列と比較している空の文字列が常に得られます。

b1、b2、b3 はデフォルト値、つまり「0」に初期化されるため、結果は常に「0」になります。

すべての getText コードをbfour.setOnClickListener()

または、TextWatcher を実装し、onTextChanged メソッドを使用します

于 2012-08-16T05:04:14.767 に答える
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));
            }
        });
    }
}
于 2012-08-16T04:58:36.317 に答える
1

使用する

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

コードで白を入力している場合、比較されません

最後に文字列を入力するときにスペースを入れていませんか? 正確かどうかにかかわらず、入力として指定した文字列の長さを一度確認してください

于 2012-08-16T04:48:57.643 に答える
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);

        }
    });
}
于 2012-08-16T05:29:35.027 に答える