java - 我想根据从我的 firebase 数据库中获得的值打开一个特定的活动
问题描述
我想根据从 firebase 实时数据库中检索到的数据打开一个特定的活动......
Firebase.setAndroidContext(this);
mRef=new Firebase("https://test-new-f2637.firebaseio.com/Name");
mValueView=(TextView) findViewById(R.id.valueView);
btn=(Button) findViewById(R.id.button);
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
value = dataSnapshot.getValue(String.class);
mValueView.setText(value);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String n=mValueField.getText().toString();
if(n=="yes")
{
func1();
}
else
{
func2();
}
}
});
}
public void func1()
{
Intent intent = new Intent(this, first.class);
startActivity(intent);
}
public void func2()
{
Intent intent = new Intent(this, second.class);
startActivity(intent);
}
}
如果我从 firebase 数据库中检索到“是”,那么应该打开第一个活动,否则应该打开第二个活动。
但问题是,通过将值检索为“是”,第二个活动也正在打开
PS:-我是android和firebase的新手
解决方案
n=="yes"
永远是假的
阅读此https://www.codejava.net/coding/10-common-mistakes-every-beginner-java-programmer-makes
https://www.codejava.net/coding/10-common-mistakes-every-beginner-java-programmer-makes#Comparison
== 运算符在物理上比较两个对象(它们的内存地址),而 equals() 方法在语义上比较两个对象(它们的信息)。在大多数情况下,我们应该使用 equals() 方法有意义地比较两个对象。
尝试:
if("yes".equals(n)) {
func1();
} else {
func2();
}
推荐阅读
- javascript - jqGrid filterToolbar 仅适用于某些列
- python - Pandas 相当于过滤器,后跟 dplyr 中的 groupby 函数
- automated-tests - 需要在 Cypress 中多次访问注册链接
- r - 如何在 RStudio 的工作目录/RProject 中使用多个数据源
- postgresql - 基于角色的数据库设计。作为用户属性或角色特定表的角色
- javascript - 我想在画布的各个方向重新缩放我的图像,但它只在右下角
- excel - 使用公式查找范围内具有零值的最后一行
- emacs - Emacs + Cider:无需输入首字母即可显示所有自动完成选项
- c++ - 模板特化中的默认实参
- graphql - 覆盖标准 ID 标量