如何使用 android 中的共享图标

How can I use the share icon in android

我确定这是一个重复的问题 - 但我似乎无法在线找到解决方法。

我正在尝试向我的应用程序添加一个共享按钮。但目前我遇到了一个问题,而不是共享图标(奇怪的 USB/tree/node 东西) - 我有 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>

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" />

您的 xmlns:app 命名空间错误,缺少 "http://"。

这导致 app:showAsAction 被忽略。