Java 数字选择器计算
我已经创建了3个不同的数字选择器,我正在使用选择的3个不同的数字进行计算,但不知道为什么它不会在totalP文本视图中显示总和。这两行是错的吗?“sum=(a*4)+(b*4)+(c*9);”和“totalP.setText(sum+“cal”);”Java 数字选择器计算,java,android,numberpicker,android-number-picker,Java,Android,Numberpicker,Android Number Picker,我已经创建了3个不同的数字选择器,我正在使用选择的3个不同的数字进行计算,但不知道为什么它不会在totalP文本视图中显示总和。这两行是错的吗?“sum=(a*4)+(b*4)+(c*9);”和“totalP.setText(sum+“cal”);” 把这两行放在所有的change listener中,它会起作用, 目前,在oncreate函数中,a、b、c在setOnValueChangedListener执行之前没有值,这就是为什么这两行不起作用的原因你必须让你的方法返回a、b和c的值,然后
把这两行放在所有的change listener中,它会起作用,
目前,在oncreate函数中,a、b、c在setOnValueChangedListener执行之前没有值,这就是为什么这两行不起作用的原因你必须让你的方法返回a、b和c的值,然后你将它们与sumI一起,在所有change listener中复制这两行,它起作用,但是当我选择第一个数字选择器时,它只显示计算第一个,第二个和第三个它忽略,我如何解决它,我希望它与其他2个相加,我想将它更改为数组?
public TextView carb;
public TextView protein;
public TextView fat;
public TextView totalP;
int carbNum,proteinNum,fatNum,cpv,ppv,fpv;
int sum,a,b,c;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_adjust_macronutrients);
Bundle extras = getIntent().getExtras();
carb = (TextView) findViewById(R.id.carbsNum);
carbNum = extras.getInt("Carb");
carb.setText(carbNum+" g");
protein = (TextView) findViewById(R.id.proteinNum);
proteinNum = extras.getInt("Protein");
protein.setText(proteinNum+" g");
fat = (TextView) findViewById(R.id.fatNum);
fatNum = extras.getInt("Fat");
fat.setText(fatNum+" g");
cpv=extras.getInt("carbP");
ppv=extras.getInt("proteinP");
fpv=extras.getInt("fatP");
totalP=(TextView) findViewById(R.id.totalPercentage);
final NumberPicker np1 = (NumberPicker) findViewById(R.id.carbPercentage);
final NumberPicker np2 = (NumberPicker) findViewById(R.id.proteinPercentage);
final NumberPicker np3 = (NumberPicker) findViewById(R.id.fatPercentage);
np1.setMaxValue(1000);
np1.setMinValue(0);
np1.setValue(carbNum);
np1.setWrapSelectorWheel(true);
np1.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
a =np1.getValue();;
carb.setText(a + " g");
}
});
np2.setMaxValue(1000);
np2.setMinValue(0);
np2.setValue(proteinNum);
np2.setWrapSelectorWheel(true);
np2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
b = np2.getValue();
protein.setText(b + " g");
}
});
np3.setMaxValue(1000);
np3.setMinValue(0);
np3.setValue(fatNum);
np3.setWrapSelectorWheel(true);
np3.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
c = np3.getValue();
fat.setText(c + " g");
}
});
sum =(a*4)+(b*4)+(c*9);
// this line cant work, is because the a,b,c ??
totalP.setText(sum+" cal");
// this line cant work ??
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}