【问题标题】:Navigation Bar click event - Android Application导航栏点击事件 - Android 应用
【发布时间】:2017-06-07 20:32:21
【问题描述】:

我正在尝试处理 Android 应用程序导航栏上的 onClick 事件。

确切地说,当用户单击返回按钮时,应用程序必须返回到主 Activity(在我的例子中为 "Start" )而不是前一个 Activity。

在我的应用程序中,我有更多的活动,这些活动都可以从每个活动中调用,因此,例如,当我在 “开始” 中时,我单击一个按钮并进入 “Karte”,然后从“Karte”我想去“Einstellungen”,然后从“Einstellungen”我想要返回主活动“开始”,但我不能,因为当我点击导航上的返回按钮时。酒吧 我只回到上一个活动(“Karte”)。

如果有人知道如何处理,请回答。

【问题讨论】:

    标签: java android navigationbar


    【解决方案1】:

    1.Karte 启动Einstellungen 后,只需完成Karte 活动即可将其从stack 中删除:

    //Karte.java 
    
    Intent intentEinstellungen = new Intent(karte.this, Einstellungen.class);
    startActivity(intentEinstellungen);
    
    // Finish Karte
    finish();
    

    2. 当从Einstellungen 按下导航back/home 图标时,只需从方法onOptionsItemSelected() 调用super.onBackPressed() 即可完成Einstellungen 活动。

    //Einstellungen.java
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        switch (id) {
            case android.R.id.home:
                super.onBackPressed();
                return true;
    
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    

    它将显示Start,因为Karte 已经从stack 中弹出。

    【讨论】:

    • 好的,我明白了。每次更改 Activity 时,我都会关闭前一个,但 Main 除外。好的,这很有帮助,谢谢。
    【解决方案2】:

    试试这个:

    在您的“Einstellungen”活动中,重写 onBackPressed 方法来处理导航:

    @Override
    public void onBackPressed() {
        Intent i = new Intent(this, Start.class);
        startActivity(i);
        finish();
    }
    

    当您从“Karte”导航到“Einstellungen”并从“Start”导航到“Karte”时,您也应该完成()您的活动以避免导航问题。

    【讨论】:

      猜你喜欢
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多