我有1个片段和2个活动:HomeFragmentProductActivityCartActivity。我想在菜单上单击购物车时致电CartActivity。但是,当我在HomeFrament中点击1个产品时,我的应用会在ProductActivity下调用CartActivityProductActivity

我正在使用实现androidx.appcompat:appcompat:1.0.2

在Product.java中,我在onOptionsItemSelected中调用购物车活动

// Click on option button.
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    int id = item.getItemId();

    switch (id){
        case android.R.id.home: {
            this.finish();
        }
        case R.id.app_bar_cart: {
            Log.d(TAG,"Cart Clicked");
            Intent intent = new Intent(this, Cart.class);
            //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
            return true;
        }
    }
    return super.onOptionsItemSelected(item);
}


我的清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.project.coconuc">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">
        <activity android:name=".Cart"/>
        <activity android:name=".product" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>


onClick通话产品

    @Override
    public void onClick(Integer position) {
        Intent callProductActivity = new Intent(mfragment.getActivity(), product.class);
        callProductActivity.putExtra("variable", position.toString());
        Objects.requireNonNull(mfragment.getActivity()).startActivity(callProductActivity);
    }


有关更多详细信息,请参见此图像:https://ibb.co/mFFZC30

这是我的代码:
https://github.com/KhoaChau0594/MoblileAppProject/tree/temp

最佳答案

我已经解决了我的问题。
这是因为产品活动中工具栏后退按钮的实现。我必须使用getSupportActionBar()而不是getActionBar()。

这就是我实现后退按钮的方式

        Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);

08-04 04:10