我正在使用列表视图来显示来自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;
答案 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")