我确定这是一个重复的问题 - 但我似乎无法在线找到解决方法。
我正在尝试向我的应用添加分享按钮。但目前我遇到了问题,而不是共享图标(奇怪的USB /树/节点) - 我有溢出菜单的3个点 - 按下时,打开一个弹出选项 - 包含一个名为share的项目。
我有正确的功能 - 但我怎么能使用图标,而不是菜单+弹出废话。
谢谢 -
奥利
P.S。 android:icon =“@ drawable / ic_action_share”是一个完全有效的路径 - 所以它不是那个
QuestionActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Share Icon Functionality
case R.id.menu_item_share : Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Help me, I'm stuck on a game!");
sendIntent.putExtra(Intent.EXTRA_TEXT, shareTextFormatter());
sendIntent.setType("text/plain");
startActivity(sendIntent);
break;
}
return false;
}
menu_question.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="schemas.android.com/apk/res-auto"
tools:context="com.example.home.ditloids.QuestionActivity">
<item
android:id = "@+id/menu_item_share"
app:showAsAction = "ifRoom"
android:title = "Share"
android:icon="@drawable/ic_action_share"
android:actionProviderClass = "android.widget.ShareActionProvider" />
</menu>
答案 0 :(得分:1)
您的xmlns:app命名空间错误,它缺少“http://”。
这会导致app:showAsAction被忽略。
答案 1 :(得分:0)
在 menu_question.xml 中,尝试将showAsAction
更改为:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="schemas.android.com/apk/res-auto"
tools:context="com.example.home.ditloids.QuestionActivity">
<item
android:id = "@+id/menu_item_share"
app:showAsAction = "always"
android:title = "Share"
android:icon="@drawable/ic_action_share"
android:actionProviderClass = "android.widget.ShareActionProvider" />