我一直在寻找数小时试图让我的分享意图成为特定网址的超链接。我为TextView看到了很多答案,但没有找到共享意图的答案,我无法弄清楚如何将textView答案应用于此。
基本上我想要这个字符串
<string name="link"><a href="https://play.google.com/store/apps/details?blahblah">EatingOut</a></string>
使用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_restaurant);
share = getString(R.string.link);
}
private void setShareIntent() {
if (mShareActionProvider != null) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Share");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Eating at "+ title.getText() + " #" + share );
mShareActionProvider.setShareIntent(shareIntent);
}
}
问题是当我分享它时,没有指向“共享”部分的超链接。 我已经尝试了很多不同的建议,但是我说的大部分都是针对textViews
编辑:尝试过TextUtils.concat,但是没有“#”
的超链接 CharSequence socialShare = TextUtils.concat("Eating at ", title.getText(), " #", share);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Share");
shareIntent.putExtra(Intent.EXTRA_TEXT, socialShare );
答案 0 :(得分:0)
问题是,当我分享它时,没有超链接到&#34;分享&#34;一部分。
这里有一些问题。
首先,我不知道<a>
是一个可以在字符串资源中使用的有效HTML样式标记。
其次,getString()
将删除该HTML样式的标记,即使它存在。
第三,您要将ACTION_SEND
Intent
的MIME类型设置为text/plain
,HTML是不同的MIME类型。
考虑到所有这些,您需要决定是否要在文本中与URL共享纯文本(依靠&#34; share&#34;收件人来识别URL并使其对用户有用,如果适用),或者如果你要分享HTML(并希望&#34;分享&#34;收件人不会搞砸太糟糕)。
如果要分享纯文本,请将字符串资源更改为:
<string name="link">https://play.google.com/store/apps/details?blahblah</string>
您还需要删除连接字符串中的#
,或者在其后添加空格,因为将#
置于URL之前可能会混淆其他应用,导致它们不会将URL识别为URL。
如果您要分享HTML,则需要更改setType()
以传递text/html
,然后将EXTRA_TEXT
设置为HTML格式的字符串或Spanned
对象(例如,通过SpannableStringBuilder
创建)。