gpt4 book ai didi

java - 返回到其 Activity 时,ShareAction Provider 会自动打开

转载 作者:行者123 更新时间:2023-12-01 05:16:46 24 4
gpt4 key购买 nike

我在操作栏中使用了 ShareActionProvider 的相当标准的实现,并且运行良好。但是,当我从操作栏中的操作按钮启动另一个 Activity 并从该 Activity 返回时,SharedActionProvider 的下拉菜单会自动打开。

当我执行完全相同的代码从普通按钮打开另一个 Activity 时,不会发生此行为。

这是我的菜单 xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_btn_my_scedule"
android:icon="@drawable/ic_menu_my_calendar"
android:title="To Scedule"
android:showAsAction="ifRoom" />
<item android:id="@+id/menu_btn_share"
android:title="Share.."
android:showAsAction="ifRoom"
android:actionProviderClass="android.widget.ShareActionProvider" />
<item android:id="@+id/menu_btn_set_scedule"
android:icon="@drawable/ic_menu_today"
android:title="Set Scedule"
android:showAsAction="collapseActionView"
android:actionProviderClass="android.widget.ShareActionProvider" />
<item android:id="@+id/menu_btn_settings"
android:icon="@drawable/ic_menu_manage"
android:title="Settings"
android:showAsAction="collapseActionView"
android:actionProviderClass="android.widget.ShareActionProvider" />
<item android:id="@+id/menu_btn_feedback"
android:icon="@drawable/ic_menu_manage"
android:title="Feedback/Question"
android:showAsAction="collapseActionView"
android:actionProviderClass="android.widget.ShareActionProvider" />
<item android:id="@+id/menu_btn_about"
android:icon="@drawable/ic_menu_info_details"
android:title="About"
android:showAsAction="collapseActionView"
android:actionProviderClass="android.widget.ShareActionProvider" />
</menu>

其他菜单方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.optionsmenu, menu);

MenuItem actionItem = menu.findItem(R.id.menu_btn_share);
ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
actionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
actionProvider.setShareIntent(createShareIntent());

return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case android.R.id.home:
finish();
return false;
case R.id.menu_btn_my_scedule:
Intent i = new Intent(ONTTOptions.this, ONTTShowScedule.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
startActivity(i);
return true;
case R.id.menu_btn_set_scedule:
i = new Intent(ONTTOptions.this, ONTTScedule.class);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
startActivity(i);
return true;
case R.id.menu_btn_settings:
i = new Intent(ONTTOptions.this, ONTTPreferences.class);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
startActivity(i);
return true;
case R.id.menu_btn_feedback:
showFeedbackDialog();
return true;
case R.id.menu_btn_about:
i = new Intent(ONTTOptions.this, ONTTAboutActivity.class);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
startActivity(i);
return true;
default: return super.onOptionsItemSelected(item);
}
}

private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "https://play.google.com/store/apps/details?id=" + ONTTConfig.PACKAGE_NAME);
return shareIntent;
}

我一定是在某个地方错过了一些东西,感谢您的帮助。

最佳答案

我发现了问题。我认为 android:actionProviderClass="android.widget.ShareActionProvider"我想要在溢出菜单中的每个操作栏项目也需要。我只是简单地在每个项目上删除了它,当然除了共享按钮。

我的菜单 xml 现在看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_btn_my_scedule"
android:icon="@drawable/ic_menu_my_calendar"
android:title="To Scedule"
android:showAsAction="ifRoom" />
<item android:id="@+id/menu_btn_share"
android:title="Share.."
android:showAsAction="ifRoom"
android:actionProviderClass="android.widget.ShareActionProvider" />
<item android:id="@+id/menu_btn_set_scedule"
android:icon="@drawable/ic_menu_today"
android:title="Set Scedule"
android:showAsAction="collapseActionView" />
<item android:id="@+id/menu_btn_settings"
android:icon="@drawable/ic_menu_manage"
android:title="Settings"
android:showAsAction="collapseActionView" />
<item android:id="@+id/menu_btn_feedback"
android:icon="@drawable/ic_menu_manage"
android:title="Feedback/Question"
android:showAsAction="collapseActionView" />
<item android:id="@+id/menu_btn_about"
android:icon="@drawable/ic_menu_info_details"
android:title="About"
android:showAsAction="collapseActionView" />
</menu>

关于java - 返回到其 Activity 时,ShareAction Provider 会自动打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11071545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com