当前位置: 首页 > 知识库问答 >
问题:

firebase导航到activity签到,同时切换家中activity的activity

乐华晖
2023-03-14

我已经完成了我的Firebase身份验证,它登录用户并将其导航到HomeActivity。这是可行的,但当我试图从主activity移动到下一个时,它会将我导航回MainActivity(在本例中是Sign in)。

public class HomeActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btnSearch;
    private TextView welcomeLbl;
    private Button btnSignout;

    FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        btnSearch = (Button) findViewById(R.id.btnSearch);
        welcomeLbl = (TextView) findViewById(R.id.welcomeLbl);
        btnSignout = (Button) findViewById(R.id.btnSignout) ;

        btnSearch.setOnClickListener(this);
        btnSignout.setOnClickListener(this);

        mAuth = FirebaseAuth.getInstance();

        if (mAuth.getCurrentUser() == null) {

            Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
            startActivity(signInIntent);
            finish();

        } else {

            welcomeLbl.setText("You are logged in!");
        }
    }

    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btnSearch:
                Intent intent = new Intent(HomeActivity.this, SearchActivity.class);
                startActivity(intent);

            case R.id.btnSignout:
                mAuth.signOut();
                Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
                startActivity(signInIntent);
                finish();
        }
    }
}

我的“注销”按钮的情况是正常的,因为它按预期注销并导航回“登录”activity,但“按钮搜索”也会这样做,而它应该导航到“搜索activity”。

以下是我的搜索activity:

public class SearchActivity extends AppCompatActivity {

    private EditText searchField;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);

        searchField = (EditText) findViewById(R.id.searchField);

    }
}

共有1个答案

杜俊楚
2023-03-14

尝试在switch options语句中添加断点,如果不添加断点,当您希望一个选项执行另一个选项的操作时,代码将继续执行。

case R.id.btnSearch:
            Intent intent = new Intent(HomeActivity.this, SearchActivity.class);
            startActivity(intent);
            break;

        case R.id.btnSignout:
            mAuth.signOut();
            Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
            startActivity(signInIntent);
            finish();
            break;
 类似资料:
  • 我有一个应用程序,我正在编写,它已经包含了很多代码,我决定我想添加一个导航抽屉到主要的activity工具栏,但我不知道如何做,不创建一个新的导航抽屉项目,复制我的整个项目到它,这似乎是很多工作,有没有一个教程添加导航抽屉到一个现有的项目?

  • 在阅读了关于片段和活动的文档和讨论后,我想我已经把情况弄清楚了。 活动应该为用户提供一个屏幕,用户可以在其中工作。导航到其他屏幕通常会破坏活动。 片段应该提供很少或单个功能组件,可以在活动中再次使用。片段的内容应该相互独立地工作,因此可以在多个活动中重用。 虽然这一切似乎都有道理,但有一件事我无法理解: 如果您创建一个新的Android应用程序,并选择创建Android导航抽屉应用程序的选项,为什

  • 我一直在努力弄清楚为什么会出现错误:java.lang.NullPointerException:试图对空对象引用调用虚拟方法“java.lang.String java.lang.object.ToString()” 以下是错误的完整描述: 2021-03-15 14:15:49.906 244 47-24447/com.goldencrestit.Quicky2 D/AndroidRuntim

  • 我将IntelliJ Idea从12.0.4升级到了12.10。 现在我的Android项目中的所有模块都给出了错误: 错误:未找到默认activity 我回到12.0.4,一切又正常了。 有什么想法吗?我认为这可能是一个问题与一个缺失的插件。由于插件没有安装,它无法找到默认的activity。另一件事可能是本地配置,但我怀疑。我删除了配置文件夹来验证,但这并没有改变任何东西。

  • 问题内容: 我刚刚将应用重构为框架库和应用,但是现在当我尝试在模拟器中启动该应用时,我得到了以下错误堆栈跟踪: 通常,这意味着清单文件在某种程度上是错误的,但是我已经仔细检查了所有我能想到的内容。 这是我的活动课: 如你所见,清单中正确列出了它: 我不知道如何解决此问题,将不胜感激。我在SO上扫描了许多类似的问题,却没有看到这种特殊的行为。 更多信息: 我已经检查了生成的APK,并且该类在clas

  • 4.3.Activity Activity 即设备在某一时刻所显示的界面。一个程序通常含有多个界面,用户可在其间切换。对用户而言,这就是程序的外观部分。 我通常喜欢拿网页来类比Activity:就像一个网站含有多个网页,Android程序也含有多个界面(Activity);网站有主页,Android程序有主界面(main Activity)——也就是启动程序时显示的第一个界面;为了方便用户在多个页