顯示廣告
隱藏 ✕
看板 KnucklesNote
作者 Knuckles (站長 那克斯)
標題 [AndroidStudio] 加上分享按鈕 Share Action
時間 2016-12-31 Sat. 14:53:46


在右上角選單加上分享功能
[圖]



加上右上角選單的方法參考這篇
[AndroidStudio] Toolbar 使用方法 - KnucklesNote板 - Disp BBS


在選單的 xml 檔加上一個分享按鈕
    <item
        android:id="@+id/action_share"
        android:title="分享"
        app:showAsAction="ifRoom"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
不用加上圖示,會自動顯示為
[圖]


注意 actionProviderClass 是用 v7 的


在 java 檔加上成員變數
    private ShareActionProvider mShareActionProvider;
Import class 要選 appcompat-v7 的
[圖]

[圖]



修改成員函式 onCreateOptionsMenu(Menu menu)
在 getMenuInflater().inflate(R.menu.menu_text, menu); 之後加上
        MenuItem menuItem = menu.findItem(R.id.action_share);
        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);

        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
        shareIntent.setType("text/plain");
        shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "要分享的標題");
        shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "要分享的內文");
        mShareActionProvider.setShareIntent(shareIntent);


執行看看
[圖]


使用 Gmail 分享
[圖]

會抓到標題與內文

使用 Facebook 分享,要分享的內文裡要附上文章網址
[圖]




□ 問題解決記錄

如果照Android Developers 寫的 Adding an Easy Share Action
加上 mShareActionProvider = (ShareActionProvider) item.getActionProvider();
時,執行會出現錯誤
This is not supported, use MenuItemCompat.getActionProvider()
因為是使用 appcompat-v7 的 toolbar,要改用 appcompat-v7 的 ShareActionProvider
參考 StackOverflow


參考
https://guides.codepath.com/android/Sharing-Content-with-Intents

--
※ 作者: Knuckles 時間: 2016-12-31 14:53:46
※ 編輯: Knuckles 時間: 2017-02-25 03:32:14
※ 看板: KnucklesNote 文章推薦值: 0 目前人氣: 0 累積人氣: 427 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續