从Android列表视图中打开不同的活动

时间:2018-02-27 16:11:42

标签: android firebase firebase-realtime-database

我正在使用列表视图来显示来自firebase的数据。从Listview开始,当用户点击"测试1"它将打开" Cardio"测试的类型页面1.如果他们点击"测试2"它打开了一个"其他"测试2的类型页面。

它会打开有氧和其他页面,但一旦应用程序是代码。它没有打开任何页面。当您单击列表视图中的项目时,它不会执行任何操作。如果我保存一个新的锻炼,那一个将正常工作。

我需要添加什么才能确保每次都打开正确的页面?

这是我用来打开网页的代码。



listViewWorkouts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
             WorkoutDB viewworkout = workoutList.get(i);

                if (viewworkout.getWorkoutCategory() == "Cardio"){

                    Intent intent = new Intent(getApplicationContext(), AddCardioActivity.class);

                    intent.putExtra(WORKOUT_ID, viewworkout.getWorkoutId());
                    intent.putExtra(WORKOUT_NAME, viewworkout.getWorkoutName());
                    intent.putExtra(WORKOUT_CATEGORY, viewworkout.getWorkoutCategory());
                    intent.putExtra(WORKOUT_DATE, viewworkout.getWorkoutDate());


                    startActivity(intent);
                }
                else if (viewworkout.getWorkoutCategory() == "Other"){
                    Intent intent = new Intent(getApplicationContext(),AddDetailActivity.class);

                    intent.putExtra(WORKOUT_ID, viewworkout.getWorkoutId());
                    intent.putExtra(WORKOUT_NAME, viewworkout.getWorkoutName());
                    intent.putExtra(WORKOUT_CATEGORY, viewworkout.getWorkoutCategory());
                    intent.putExtra(WORKOUT_DATE, viewworkout.getWorkoutDate());


                    startActivity(intent);
                }
                
        });
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

而不是viewworkout.getWorkoutCategory() == "Cardio"使用viewworkout.equals("Cardio")

==运算符测试两个变量是否具有相同的引用(指向内存地址的指针)。

String foo = new String("abc");
String bar = new String("abc");

if(foo==bar)
// False (The objects are not the same)

bar = foo;

if(foo==bar)
// True (Now the objects are the same)

equals()方法测试两个变量是否引用具有相同状态(值)的对象。

String foo = new String("abc");
String bar = new String("abc");

if(foo.equals(bar))
// True (The objects are identical but not same)

答案 1 :(得分:0)

使用

  

<强>等于()

建议用于字符串操作的

包含()操作

  

if(viewworkout.getWorkoutCategory()。equals(Cardio){}

== 也用于int或somelse

答案 2 :(得分:0)

尝试使用以下方法/(s).toLowerCase().equals("others")