java - 如何从Java中的If语句中的变量中获取值
问题描述
我在公共类中声明了一个变量,然后我用 if 语句分配了变量,但是当我计算它时,它没有从 if 语句中获取值。如何解决?这里是完整的代码https://pastebin.com/yuaMx4Mk谢谢
double doubleJarak=Double.parseDouble(jarak);
double doublewaktu=Double.parseDouble(waktu);
//SPinner Code
MaterialSpinner spinner = (MaterialSpinner) findViewById(R.id.spinner);
spinner.setItems("Premium Rp 7.000", "Pertalite Rp 7.650", "Pertamax Rp 9.850", "Pertamax Turbo Rp 11.200");
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
//Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
if(position==0)
hargaBBM=7000;
else if(position==1)
hargaBBM=7650;
else if(position==2)
hargaBBM=9850;
else
hargaBBM=11200;
}
});
MaterialSpinner spinner2 = (MaterialSpinner) findViewById(R.id.spinner2);
spinner2.setItems("Honda", "Yamaha", "Kawasaki", "Suzuki", "Lainnya");
spinner2.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position2, long id, String item) {
//Snackbar.make(view, "Clicked " + item + position2, Snackbar.LENGTH_LONG).show();
if (position2==0){
MaterialSpinner spinner3 = (MaterialSpinner) findViewById(R.id.spinner3);
spinner3.setItems("Revo 110 FI", "Blade 125 FI", "Supra X 125 FI");
spinner3.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
//Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
if(position==0){
iritHonda=62200;
}else if(position==1){
iritHonda=61800;
}else if(position==2){
iritHonda=61800;
}
}
});
}
}
});
totalHarga=iritHonda*hargaBBM;
TextView Harga=(TextView)findViewById(R.id.totalHarga);
Harga.setText(Double.toString(totalHarga));
}
}
解决方案
您的问题是这些函数是回调。在选择项目后,它们被异步调用。它们不返回值。在实际调用它们之前,您不能使用它们设置的变量。这意味着在 onCreate 结束时使用它们的所有代码都位于错误的位置,需要在两个微调器的处理程序内调用它(因此它可以在任何一个微调器更改时更改)。
推荐阅读
- python - 如何使用 dictConfig 语法指定具有所需参数的日志处理程序类?
- firebase - 如何从 ionic 3 进行 Firebase 分析?
- vba - 从 Outlook 电子邮件循环遍历表格中的所有单元格
- java - Spring Boot - 缓存不起作用,如何正确设置缓存?
- node.js - Node.js 子进程未能通过 GitHub ssh 身份验证
- typescript - 当返回类型为 Promise of something 时,使用 reflect-metadata 获取返回类型
- java - 朴素的算法实现
- mysql - 查询:SUM、AVG 3 天的数据?
- javascript - 应用模态放大
- python - 如何使用 Python 按相同条件过滤多个数据框列