我有1个片段和2个活动:HomeFragment
,ProductActivity
和CartActivity
。我想在菜单上单击购物车时致电CartActivity
。但是,当我在HomeFrament
中点击1个产品时,我的应用会在ProductActivity
下调用CartActivity
和ProductActivity
。
我正在使用实现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);