Android 有人能告诉我为什么这个街区不好用吗?

Android 有人能告诉我为什么这个街区不好用吗?,android,string,if-statement,boolean-logic,Android,String,If Statement,Boolean Logic,代码: 日志: String my = c.getString(c.getColumnIndexOrThrow("ringtype")); Log.e("my", my); if(my=="default") { Log.e(tablename, "button marked not visable1"); } else { Log.e(tablename, "button marked visable2"); } 我还尝试了Log.e(“我的”,“我的+”!“+my+”!”)

代码:

日志:

String my = c.getString(c.getColumnIndexOrThrow("ringtype"));
Log.e("my", my);
if(my=="default")
{
    Log.e(tablename, "button marked not visable1");
}
else
{
    Log.e(tablename, "button marked visable2");
}
我还尝试了
Log.e(“我的”,“我的+”!“+my+”!”)
查看是否有隐藏的空白区将其丢弃。但事实并非如此。据我所知,这两个是匹配的,我应该得到的信息是按钮不可见

所以我肯定错过了什么,但我不知道是什么
编辑:谢谢大家,如果可以的话,我会接受所有的答案,因为它们是有意义的。

String无法与之相比==
使用like
if(my.equals(“默认”))
字符串不能与==
使用like
if(my.equals(“default”)
尝试
my.equals(“default”)
而不是
my==“default”
尝试
my.equals(“default”)
而不是
my==“default”

“my”是不同的对象,而“default”是另一个对象。。当您使用“==”运算符时,它会比较实际地址/引用,其中as“.equals”比较内容。。因此,使用.equals

“我的”是不同的对象,“默认”是另一个对象。。当您使用“==”运算符时,它会比较实际地址/引用,其中as“.equals”比较内容。。因此,使用.equals

您可以使用
if(my.equals(“默认”))
检查
if(my.equals(“默认”)

07-28 02:10:57.396: ERROR/my(16204): default
07-28 02:10:57.404: ERROR/meds(16204): button marked visable2