【问题标题】:handling back button android[已解决]:处理返回按钮 android
【发布时间】:2020-06-02 21:05:13
【问题描述】:

我在点击activity上的后退按钮时遇到问题,特别是activity上的后退按钮关闭了应用程序并销毁了所有的activity,我想回到堆栈中,并且在之前调用的activity中当点击返回按钮。

这是我的代码:

ChatToolBar = (Toolbar) findViewById(R.id.chat_bar_layout);
setSupportActionBar(ChatToolBar);
ActionBar actionBar =  getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View action_bar_view = layoutInflater.inflate(R.layout.chat_custom_bar, null);
actionBar.setCustomView(action_bar_view);

我的AndroidManifest.xml

<activity
    android:name=".ChatActivity"
    android:parentActivityName=".ProfileActivity" />

我也试过了:

        <activity
            android:name=".ChatActivity"
            android:parentActivityName=".ProfileActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".ProfileActivity" />
        </activity>

问题应该出在哪里?

【问题讨论】:

  • 您是指顶部的父/UP 按钮还是底部的返回按钮?
  • 您能否检查一下您的活动是否将History 设置为false
  • 我的意思是按钮,后退和顶部按钮都包含应用程序。 @Ali 我如何查看活动的历史记录是否设置为 false?

标签: java android navigation android-button


【解决方案1】:

我刚刚用这段代码解决了这个问题:

@Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item)
    {
        int id = item.getItemId();

        if (id == android.R.id.home)
        {
            SendUserToMainActivity();
        }

        return super.onOptionsItemSelected(item);
    }


    private void SendUserToMainActivity()
    {
        Intent mainIntent = new Intent(ChatActivity.this, MainActivity.class);
        mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK );
        startActivity(mainIntent);
        finish();
    }

【讨论】:

    【解决方案2】:

    您可以在操作栏中添加按钮

    在 mainfest.xml 中

    <activity .ActivityB" >
    <meta-data
     android:name="android.support.PARENT_ACTIVITY"
     android:value=".ActivityA" />
    

    【讨论】:

    • 后退按钮已经使用 setDisplayHomeAsUpEnabled(true) 以编程方式设置...这将在左上角的工具栏中显示一个后退箭头,但如果按下该箭头则会关闭应用程序跨度>
    • 我在清单中试过这个 但它不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2018-06-16
    • 2019-01-20
    • 1970-01-01
    • 2021-05-25
    • 2014-09-27
    相关资源
    最近更新 更多