Android Java 如果条件为真则开始 activity
Android Java Starting an activity if a condition is true
只有当我从另一个 activity 使用 putExtra 传递的字符串等于 'search' 时,我才想启动一个 activity,如下所示:
action = intent.getStringExtra("cause");
Button btnBack = findViewById(R.id.btnBack);
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(action == "search") {
Intent intent2 = new Intent(profiloutente.this, ricerca.class);
startActivity(intent2);
}
}
});
但是,即使包含 get Extra 的变量等于“搜索”,条件似乎总是为假(因此 activity 不会启动)。我不明白为什么会这样。有人可以帮助我吗?
if(action.equals("search"))
改为
if(action == "search")
明显的问题是您在 String
上使用 ==
。 How do I compare strings in Java?
另一个问题是 action
是在 listener 之外读取的。这可能是意图,但我不能孤立地说 - 如果它是 if
语句中整个侦听器的周围会更有意义。 action
将在您 运行 周围代码时从 getStringExtra
中获取值,而不是在触发侦听器时。
可能还有其他问题。
只有当我从另一个 activity 使用 putExtra 传递的字符串等于 'search' 时,我才想启动一个 activity,如下所示:
action = intent.getStringExtra("cause");
Button btnBack = findViewById(R.id.btnBack);
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(action == "search") {
Intent intent2 = new Intent(profiloutente.this, ricerca.class);
startActivity(intent2);
}
}
});
但是,即使包含 get Extra 的变量等于“搜索”,条件似乎总是为假(因此 activity 不会启动)。我不明白为什么会这样。有人可以帮助我吗?
if(action.equals("search"))
改为
if(action == "search")
明显的问题是您在 String
上使用 ==
。 How do I compare strings in Java?
另一个问题是 action
是在 listener 之外读取的。这可能是意图,但我不能孤立地说 - 如果它是 if
语句中整个侦听器的周围会更有意义。 action
将在您 运行 周围代码时从 getStringExtra
中获取值,而不是在触发侦听器时。
可能还有其他问题。