0

有人告诉我,由于 API 14 的变化,我必须将 switch 语句更改为 If-Else 语句。

没关系。

什么不起作用是当我将插入符号放在 switch 语句上并按照说明按 CTRL-1 时,我没有任何选项,顺便说一下,我正在使用 Ubuntu,有什么建议吗?

我也试过清理我的项目。

编辑。它适用于所有其他 switch 语句,而不是此处包含的语句:

public void onClick(View v) {
        switch (v.getId()) {

        case R.id.btnCalcCalories:
            double weight = Integer.parseInt(etWeight.getText().toString());
            double bodyfat = Integer.parseInt(etBodyfat.getText().toString());
            ;
            lbm = weight * (100 - bodyfat) / 100;
            bmr = 370 + (21.6 * lbm);
            maintCals = bmr * actLevel;

            maintCalories
                    .setText("Calories need to maintain current bodyweight: "
                            + String.valueOf(maintCals));

            lbmResult.setText("Your Lean Body Mass is " + String.valueOf(lbm)
                    + "Kg");
            bmrResult.setText("Your Base Metabolic rate is "
                    + String.valueOf(bmr) + " calories");
            calorieResult.setText("Your Daily calorie goal is "
                    + String.valueOf(finalGPercentage) + " calories");
            break;
        case R.id.btnUpdateDB:
            boolean worked = true;
            try {
                String dbWeight = curWeight.getText().toString();
                String dbWaist = curWaist.getText().toString();
                String dbChest = curChest.getText().toString();
                String dbLegs = curLegs.getText().toString();
                String dbArms = curArms.getText().toString();

                Stats entry = new Stats(MainActivity.this);
                entry.open();
                entry.createEntry(dbWeight, dbWaist, dbChest, dbArms, dbLegs);
                entry.close();
                break;
            } catch (Exception e) {
                worked = false;
                String error = e.toString();
                Dialog d = new Dialog(this);
                d.setTitle("Error");
                TextView tv = new TextView(this);
                tv.setText(error);
                d.setContentView(tv);
                d.show();
            } finally {
                if (worked) {
                    Dialog d = new Dialog(this);
                    d.setTitle("DB Worked");
                    TextView tv = new TextView(this);
                    tv.setText("Success");
                    d.setContentView(tv);
                    d.show();
                }
            }

        case R.id.btnViewDB:
            Intent i = new Intent("com.uhi.fatfighter.DBView");
            startActivity(i);
            break;
        case R.id.btnStopwatchActivity:
            Intent s = new Intent("com.uhi.fatfighter.Stopwatch");
            startActivity(s);
            break;
        case R.id.btnMapARun:
            Intent m = new Intent("com.uhi.fatfighter.MapRun");
            startActivity(m);
            break;
        case R.id.btnWeightConverter:
            Intent w = new Intent("com.uhi.fatfighter.WeightConverter");
            startActivity(w);
            break;
        }

    }
4

2 回答 2

4

在我的项目属性中,我将我的 Google-libs 检查为“是库”,取消选中它并解决了问题。

于 2013-05-09T09:34:57.193 回答
0
  1. 问题是 Eclipse 是愚蠢的。如果你想做这样很酷的事情,你应该使用 IntelliJ IDEA。

  2. 不要忘记调用trim()方法来删​​除尾随空格。

    双倍权重 = Integer.parseInt(etWeight.getText().toString());

  3. 使用幻数不是好方法。

    bmr = 370 + (21.6 x 磅);

  4. 捕获根异常不是好方法。

    捕获(异常 e)

  5. 永远不要在 finally 块中显示 Dialog,此时您的应用程序可能会崩溃。

于 2013-05-08T21:20:11.323 回答