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 中获取值,而不是在触发侦听器时。

可能还有其他问题。