Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:计算并输出到textview_Java_Android_Variables - Fatal编程技术网

Java Android:计算并输出到textview

Java Android:计算并输出到textview,java,android,variables,Java,Android,Variables,在我正在创建的一个简单的应用程序中,一切都设置得很好,我可以处理字符串没有问题,有一个关于如何根据一些用户输入变量计算输出的headscratcher,下面是按钮执行计算的地方,据我所知,所有变量都设置得很好。如果你愿意,我可以发布完整的代码 我需要“lbm”的输出。 “weight”和“bodyfat”都是EditText转换为int的,并且(希望)被计算以提供答案,然后将其传递给“lbmResult”,这是一个文本视图 case R.id.btnCalcCalories:

在我正在创建的一个简单的应用程序中,一切都设置得很好,我可以处理字符串没有问题,有一个关于如何根据一些用户输入变量计算输出的headscratcher,下面是按钮执行计算的地方,据我所知,所有变量都设置得很好。如果你愿意,我可以发布完整的代码

我需要“lbm”的输出。 “weight”和“bodyfat”都是EditText转换为int的,并且(希望)被计算以提供答案,然后将其传递给“lbmResult”,这是一个文本视图

case R.id.btnCalcCalories:
            int weight = Integer.parseInt(weightInt);
            int bodyfat = Integer.parseInt(bodyfatInt);
            lbm = weight*(100 - bodyfat)/100;
            lbmResult.setText(lbm);
            break;
        }

代码没有显示它,但
lbm
可能是
int
类型。因此使用了
setText(int)
重载,该重载需要资源id,但
lbm
不是资源id。将其更改为:

lbmResult.setText(Integer.toString(lbm));

改为使用
setText(CharSequence)
重载。

代码不显示它,但
lbm
可能是
int
类型。因此使用了
setText(int)
重载,该重载需要资源id,但
lbm
不是资源id。将其更改为:

lbmResult.setText(Integer.toString(lbm));

改为使用
setText(CharSequence)
重载。

setText接受一个字符串,并向其传递一个浮点。要打印它,必须首先将
lbm
转换为字符串


try
lbmResult.setText(Float.toString(lbm))

setText接受一个字符串,并向其传递一个浮点。要打印它,必须首先将
lbm
转换为字符串

try
lbmResult.setText(Float.toString(lbm))

此外,最好使用double进行计算,并将其格式设置为小数点后2位

lbmResult.setText(lbm);
此外,最好使用double进行计算,并将其格式设置为小数点后2位

lbmResult.setText(lbm);
=>

=>


虽然您没有提到您是将lbm声明为int还是double,但我假设第一种情况并在下面查看,您的代码将是

        case R.id.btnCalcCalories:
            int weight = Integer.parseInt(weightEdittextValue.getText().toString());
            int bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
            int lbm = weight*(100 - bodyfat)/100;
            lbmResult.setText(String.valueOf(lbm));
            break;
但是我建议您需要使用
double
而不是
int
来获得正确的结果,就像

case R.id.btnCalcCalories:
    double weight = Integer.parseInt(weightEdittextValue.getText().toString());
    double bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
    double lbm = weight*(100 - bodyfat)/100;
    lbmResult.setText(String.valueOf(lbm));
    break;

虽然您没有提到您是将lbm声明为int还是double,但我假设第一种情况并在下面查看,您的代码将是

        case R.id.btnCalcCalories:
            int weight = Integer.parseInt(weightEdittextValue.getText().toString());
            int bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
            int lbm = weight*(100 - bodyfat)/100;
            lbmResult.setText(String.valueOf(lbm));
            break;
但是我建议您需要使用
double
而不是
int
来获得正确的结果,就像

case R.id.btnCalcCalories:
    double weight = Integer.parseInt(weightEdittextValue.getText().toString());
    double bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
    double lbm = weight*(100 - bodyfat)/100;
    lbmResult.setText(String.valueOf(lbm));
    break;

为什么是-1?我假设lbm是一个浮点,但除此之外,我的答案有什么问题?如果它是一个浮点,它不会给OP一个headscratcher,而是一个直接的编译错误。为什么是-1?我假设lbm是一个浮点,但除此之外,我的答案有什么错?如果它是一个浮点,它不会给OP一个headscratcher,而是一个直接的编译错误。这非常有效,但都是很好的答案!!谢谢大家!这一切都很完美,不过都是很好的答案!!谢谢大家!