if 语句在 android 中无法正常工作
if statment not working properly in android
大家好,我是新手 android 我只想更改文本视图文本,如果计算值在 18 或 25 之间 我使用 if 语句但没有结果
有时如果我删除其中一个 > 它的工作但仅用于最大价值的任何想法
public class GB extends ActionBarActivity {
ImageView im1;
EditText mEditText1,mEditText2;
TextView mTextView,m5;
Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_GB);
im1 = (ImageView)findViewById(R.id.imageView1);
mEditText1 = (EditText)findViewById(R.id.editText1);
mEditText2 = (EditText)findViewById(R.id.editText2);
mTextView = (TextView)findViewById(R.id.textView4);
m5 = (TextView)findViewById(R.id.textView5);
mButton = (Button)findViewById(R.id.button1);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button1:
}
String word2 = mEditText2.getText().toString();
String word = mEditText1.getText().toString();
if (word.trim().equals("")){
mEditText1.setError("Insert Hight");
}
else if (word2.trim().equals("")){
mEditText2.setError("Insert Wight");
} else{
calculate();
}
}
});
}
public void calculate(){
Double value1 = Double.parseDouble(mEditText1.getText().toString());
Double value2 = Double.parseDouble(mEditText2.getText().toString());
Double calculatedValue = value1/(value2*value2)*10000;
calculatedValue = Math.round(calculatedValue*10)/10.0d;
mTextView.setText(calculatedValue.toString());
if (mTextView.getText().toString().trim().length() <10 && mTextView.getText().toString().trim().length() >18) {
im1.setBackgroundResource(R.drawable.s1);
m5.setText("low");
} else if (mTextView.getText().toString().trim().length() <18 && mTextView.getText().toString().trim().length() >25) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("Best");
} else if (mTextView.getText().toString().trim().length() <25 && mTextView.getText().toString().trim().length() >100) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("over");
}
}
}
如果你想检查一个值是否在一个区间内,你必须这样写:
if(myvalue > lowerbound && myvalue < upperbound )
以下代码可能会满足您的要求。
public void calculate(){
Double value1 = Double.parseDouble(mEditText1.getText().toString());
Double value2 = Double.parseDouble(mEditText2.getText().toString());
Double calculatedValue = value1/(value2*value2)*10000;
calculatedValue = Math.round(calculatedValue*10)/10.0d;
mTextView.setText(calculatedValue.toString());
if (calculatedValue >= 10 && calculatedValue < 18) {
im1.setBackgroundResource(R.drawable.s1);
m5.setText("low");
} else if (calculatedValue >= 18 && calculatedValue < 25) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("Best");
} else if (calculatedValue >= 25 && calculatedValue < 100) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("over");
}
}
整数值不能同时小于18和大于25。
而不是
if (mTextView.getText().toString().trim().length() <18 && mTextView.getText().toString().trim().length() >25)
如果您想检查 18 到 25 之间的值,请使用这个。
if (mTextView.getText().toString().trim().length() > 18 && mTextView.getText().toString().trim().length() < 25)
- 这里的 switch 语句没有用,您已经为按钮设置了点击侦听器,您再次尝试检查是否点击了同一个按钮。
- 最好检查输入的值是否为数字。
- 当您使用 if、else if 和 else 时 - 将只执行一个,将执行完全填充语句的一个,其余代码将不执行,例如查看以下:
if( a > b){
//show A is bigger than b;
} else if ( a == b){
// show A equals to b
} else{
// b > a
}
这里,
if (word.trim().equals("")){//if this conditions works, code won't go to test else if or else statement.
mEditText1.setError("Insert Hight");
}
else if (word2.trim().equals("")){
mEditText2.setError("Insert Wight");
} else{
calculate();
}
您检查值的方式是错误的,该语句将始终为 false,如 1。您正在测试值是否 < 10,同时您正在测试值是否> 18,其中一个肯定是假的。
if(mTextView.getText().toString().trim().length() <10 && mTextView.getText().toString().trim ().length() >18)
大家好,我是新手 android 我只想更改文本视图文本,如果计算值在 18 或 25 之间 我使用 if 语句但没有结果 有时如果我删除其中一个 > 它的工作但仅用于最大价值的任何想法
public class GB extends ActionBarActivity {
ImageView im1;
EditText mEditText1,mEditText2;
TextView mTextView,m5;
Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_GB);
im1 = (ImageView)findViewById(R.id.imageView1);
mEditText1 = (EditText)findViewById(R.id.editText1);
mEditText2 = (EditText)findViewById(R.id.editText2);
mTextView = (TextView)findViewById(R.id.textView4);
m5 = (TextView)findViewById(R.id.textView5);
mButton = (Button)findViewById(R.id.button1);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button1:
}
String word2 = mEditText2.getText().toString();
String word = mEditText1.getText().toString();
if (word.trim().equals("")){
mEditText1.setError("Insert Hight");
}
else if (word2.trim().equals("")){
mEditText2.setError("Insert Wight");
} else{
calculate();
}
}
});
}
public void calculate(){
Double value1 = Double.parseDouble(mEditText1.getText().toString());
Double value2 = Double.parseDouble(mEditText2.getText().toString());
Double calculatedValue = value1/(value2*value2)*10000;
calculatedValue = Math.round(calculatedValue*10)/10.0d;
mTextView.setText(calculatedValue.toString());
if (mTextView.getText().toString().trim().length() <10 && mTextView.getText().toString().trim().length() >18) {
im1.setBackgroundResource(R.drawable.s1);
m5.setText("low");
} else if (mTextView.getText().toString().trim().length() <18 && mTextView.getText().toString().trim().length() >25) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("Best");
} else if (mTextView.getText().toString().trim().length() <25 && mTextView.getText().toString().trim().length() >100) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("over");
}
}
}
如果你想检查一个值是否在一个区间内,你必须这样写:
if(myvalue > lowerbound && myvalue < upperbound )
以下代码可能会满足您的要求。
public void calculate(){
Double value1 = Double.parseDouble(mEditText1.getText().toString());
Double value2 = Double.parseDouble(mEditText2.getText().toString());
Double calculatedValue = value1/(value2*value2)*10000;
calculatedValue = Math.round(calculatedValue*10)/10.0d;
mTextView.setText(calculatedValue.toString());
if (calculatedValue >= 10 && calculatedValue < 18) {
im1.setBackgroundResource(R.drawable.s1);
m5.setText("low");
} else if (calculatedValue >= 18 && calculatedValue < 25) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("Best");
} else if (calculatedValue >= 25 && calculatedValue < 100) {
im1.setBackgroundResource(R.drawable.s3);
m5.setText("over");
}
}
整数值不能同时小于18和大于25。
而不是
if (mTextView.getText().toString().trim().length() <18 && mTextView.getText().toString().trim().length() >25)
如果您想检查 18 到 25 之间的值,请使用这个。
if (mTextView.getText().toString().trim().length() > 18 && mTextView.getText().toString().trim().length() < 25)
- 这里的 switch 语句没有用,您已经为按钮设置了点击侦听器,您再次尝试检查是否点击了同一个按钮。
- 最好检查输入的值是否为数字。
- 当您使用 if、else if 和 else 时 - 将只执行一个,将执行完全填充语句的一个,其余代码将不执行,例如查看以下:
if( a > b){ //show A is bigger than b; } else if ( a == b){ // show A equals to b } else{ // b > a }
这里,
if (word.trim().equals("")){//if this conditions works, code won't go to test else if or else statement.
mEditText1.setError("Insert Hight");
}
else if (word2.trim().equals("")){
mEditText2.setError("Insert Wight");
} else{
calculate();
}
您检查值的方式是错误的,该语句将始终为 false,如 1。您正在测试值是否 < 10,同时您正在测试值是否> 18,其中一个肯定是假的。
if(mTextView.getText().toString().trim().length() <10 && mTextView.getText().toString().trim ().length() >18)