0

誰かの身長と体重の関係を計算する Android アプリケーションを作成しています。すべてがうまく機能し、なんとか計算を行うことができました。

ただし、TextView の結果を if ステートメントに入れたい場合、結果が大きいか小さいか等しいかに関係なく、最初の if ステートメントの出力を受け取ります。すぐに、計算に基づいてプログラムに3つの異なる結果を与えたいと思っています。これが私のコードです:

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 Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // My Programming Begins Here
    final EditText editTextHeight = (EditText) findViewById(R.id.editTextHeight);
    final EditText editTextWeight = (EditText) findViewById(R.id.editTextWeight);
    Button calculateButton = (Button) findViewById(R.id.calculateButton);
    final TextView result = (TextView) findViewById(R.id.result);
    final TextView suggestionResult = (TextView) findViewById(R.id.suggestionResult);
    // Coding for the Button
    calculateButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            int heightValue = Integer.parseInt(editTextHeight.getText()
                    .toString());

            int weightValue = Integer.parseInt(editTextWeight.getText()
                    .toString());

            // Finding out the square of weightValue and then dividing the
            // heightValue by the sqaure of weightValue
            result.setText(String.valueOf(heightValue
                    / (Math.sqrt(weightValue))));
            if (result.getText().toString().length() >= 1
                    && result.getText().toString().length() < 18.5) {
                suggestionResult.setText("You have to gain weight");
            }
            if (result.getText().toString().length() >= 18.5
                    && result.getText().toString().length() < 24.9) {
                suggestionResult.setText("You are normal");
            } else {
                suggestionResult.setText("You have to lose      weight");
            }
        }
    });

}
}
4

6 に答える 6

4

これを試して

double d=Double.parseDouble(result.getText().toString());

 if ( d<=18.5) {
                suggestionResult.setText("You have to gain weight");
            }
            if (d >= 18.5 && d < 24.9) {
                suggestionResult.setText("You are normal");
            } else {
                suggestionResult.setText("You have to lose  weight");
            }
于 2013-03-12T15:32:30.147 に答える
3

結果.getText().toString().length() >= 18.5

あなたはここで間違っています。値ではなく編集テキスト内の文字の長さを与えるため、この条件が真になることはありません。

float rs = Float.parseFloat(result.getText().toString());

次に、比較を行います。

if (rs >= 1 && rs < 18.5f) {
    suggestionResult.setText("You have to gain weight");
}
if (rs >= 18.5f rs < 24.9f) {
    suggestionResult.setText("You are normal");
} else {
    suggestionResult.setText("You have to lose      weight");
}
于 2013-03-12T15:26:43.553 に答える
0

このようにしてください:-)

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 Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

// My Programming Begins Here
final EditText editTextHeight = (EditText) findViewById(R.id.editTextHeight);
final EditText editTextWeight = (EditText) findViewById(R.id.editTextWeight);
Button calculateButton = (Button) findViewById(R.id.calculateButton);
final TextView result = (TextView) findViewById(R.id.result);
final TextView suggestionResult = (TextView) findViewById(R.id.suggestionResult);
// Coding for the Button
calculateButton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        int heightValue = Integer.parseInt(editTextHeight.getText()
                .toString());

        int weightValue = Integer.parseInt(editTextWeight.getText()
                .toString());

        // Finding out the square of weightValue and then dividing the
        // heightValue by the sqaure of weightValue
        result.setText(String.valueOf(heightValue
                / (Math.sqrt(weightValue))));
        if (Integer.parseInt(result.getText().toString()) >= 1
                && result.getText().toString().length() < 18.5) {
            suggestionResult.setText("You have to gain weight");
        }
        if (Integer.parseInt(result.getText().toString()) >= 18.5
                && result.getText().toString().length() < 24.9) {
            suggestionResult.setText("You are normal");
        } else {
            suggestionResult.setText("You have to lose      weight");
        }
    }
});

} }

于 2013-03-12T15:31:34.417 に答える
0

これを使用して、TextView

float f = Float.parseFloat(result.getText().toString());
于 2013-03-12T15:31:10.453 に答える
0
 if (Double.ValueOf(result.getText()) >= 1
                && Double.ValueOf(result.getText()) < 18.5) {
                    suggestionResult.setText("You have to gain weight");
                }
                if (Double.ValueOf(result.getText()) >= 18.5
                        && Double.ValueOf(result.getText()) < 24.9) {
                    suggestionResult.setText("You are normal");
                } else {
                    suggestionResult.setText("You have to lose      weight");
                }
于 2013-03-12T15:30:08.623 に答える
0

計算結果は、if ステートメントで直接使用する必要があります。比較を行うために取得する必要があるテキストビューの最初に配置しないでください。

于 2013-03-12T19:56:41.320 に答える