【问题标题】:how to take value from variable inside If Statement in java [closed]java - 如何在Java中的If语句中从变量中获取值[关闭]
【发布时间】:2019-04-07 06:22:51
【问题描述】:

我在公共类中声明了一个变量,然后我用 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));

}

}

【问题讨论】:

  • 您要查找哪个变量?
  • iritBBM 和 hargaBBM 朋友,你会看到完整的代码
  • 发布minimal reproducible example。不要指望人们去看你的完整代码。
  • 将 log 放在你的 else 条件之后 hargaBBM 和 iritHonda 相同,然后首先检查 logcat。如果那里没有值,那么您的项目选择方法有问题。第二件事是,您在所选项目中初始化 MaterialSpinner,这比预期的要差。
  • 你不能计算totalHarga 并在那里显示它的值。尚未在 Spinners 中选择任何内容。如果您想在每次Spinner 选择更改时更新显示,那么您需要在每个onItemSelected() 方法中进行计算和显示。否则,将其放入类似ButtonOnClickListener 中。

标签: java android google-maps variables


【解决方案1】:

您的问题是这些函数是回调。在选择项目后,它们被异步调用。它们不返回值。在实际调用它们之前,您不能使用它们设置的变量。这意味着在 onCreate 结束时使用它们的所有代码都位于错误的位置,需要在两个微调器的处理程序中调用它(因此它可以在任何一个微调器更改时更改)。

【讨论】:

  • ok,我明白了。你能告诉我如何用 java pal 制作链式下拉菜单吗?使用 if 语句非常困难,谢谢您的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 2018-01-13
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多