-1

我正在开发一个 Android 应用程序,我有一个小问题。让我先解释一下目标:

目标是用户有多个项目:例如。项目 1、项目 2 和项目 3。每个项目都有子项目:例如。分项 1、分项 2、分项 3。

因此,例如,用户选择:项目 3 中的子项目 2。现在的问题是:我可以在项目中返回和前进而不单击它们吗?

我都准备好了,可以选择从字符串中读取数字并进行编辑。

但我想要的是子项不能再超过 1~3,如果项是 1,子项是 3,并且按下下一个 btn,它将选择更改为项 2 和子项 1。如果我让我的自我很清楚,如果我这样做必须有一个反之亦然的选择!因此,如果 item 为 2,subitem 为 1,并且按下后 btn,则 item 为 1,subitem 为 3。

2 小注释,但非常重要:现在项目不能高于 1~10 和子项目不能高于 1~3。

这是我到目前为止的代码:

int weeknr;
                 int trainingnr;
                 weeknr = Integer.valueOf(String.valueOf(
                 week.replaceAll("[a-zA-Z]", "")).replace(" ", ""));
                 trainingnr = Integer.valueOf(String.valueOf(
                 training.replaceAll("[a-zA-Z]", "")).replace(" ",
                 ""));

                 if (weeknr > 0 && trainingnr > 0) {
                 week = "Week " + String.valueOf(weeknr - 1);
                 if (trainingnr != 1 && weeknr >1) {
                 trainingnr = 3;
                 weeknr = weeknr - 1;
                 }
                 training = "Training " + String.valueOf(trainingnr - 1);
                 trainingSelected = "";
                 trainingSelected = week + "_" + training;
                 playTraining();

如果您是荷兰人或您的朋友是荷兰人(因为该应用程序以及与该应用程序相关的所有内容也是荷兰人)并且您有最佳/有效的答案,您可以获得此应用程序的高级代码!

4

2 回答 2

1

本质上,您正在定义一个树结构,并希望按顺序遍历它。如果子节点具有对其父节点的引用,这是最简单的。

每个节点都应该有一个接口来获取下一个子节点并获取父节点。实现节点后,您可以构建迭代器来使用它们。

于 2013-07-14T13:07:17.837 回答
0

我通过这样做来修复它:

int weeknr;
                 int trainingnr;
                 weeknr = Integer.valueOf(String.valueOf(
                 week.replaceAll("[a-zA-Z]", "")).replace(" ", ""));
                 trainingnr = Integer.valueOf(String.valueOf(
                 training.replaceAll("[a-zA-Z]", "")).replace(" ",
                 ""));

                 if (weeknr == 10) {
                     Log.d("TrainingControl", "Week is equal to 10");

                     if (trainingnr == 3) {
                         Log.d("TrainingControl", "Training is equal to 3");
                         Toast.makeText(
                                 MainActivity.this,
                                 "Dit is de laatste training, u kunt niet verder naar de volgende",
                                 Toast.LENGTH_SHORT).show(); 


                     }else if(trainingnr < 3){
                         Log.d("TrainingControl", "Training is less then 3");
                         training = "Training " + String.valueOf(trainingnr + 1);
                     }


                 } else if(weeknr < 10){
                     Log.d("TrainingControl", "Week is less then 10");
                     //Week +1 if training equals 3 and the week is less then 10
                     if (trainingnr == 3) {
                         Log.d("TrainingControl", "Training is equal to 3");
                         week = "Week " + String.valueOf(weeknr + 1);
                         training = "Training " +1;
                     }else if(trainingnr < 3){
                         Log.d("TrainingControl", "Training is less then 3");
                         //Training +1 if training is less then 3 and the week is less then 10
                         training = "Training " + String.valueOf(trainingnr + 1);
                     }


                 }
                 trainingSelected = "";
                 trainingSelected = week + "_" + training;
                 playTraining();

我错误地认为 != 表示等于,但它表示不等于,因此通过替换上一篇文章中的 != 并稍微编辑代码以使不再有负值,这可行现在喜欢魅力!

祝所有需要这个的人好运!

于 2013-07-16T10:34:24.083 回答