我想共享純文本,同時通過ActionBarSherlock使用共享操作提供程序,並且只有四個選項與其共享並且沒有「查看所有...」選項。只有四個選項ShareActionProvider與ActionBarSherlock
這是爲什麼?
這是什麼樣子:
,這就是我想要它看起來像:
我想共享純文本,同時通過ActionBarSherlock使用共享操作提供程序,並且只有四個選項與其共享並且沒有「查看所有...」選項。只有四個選項ShareActionProvider與ActionBarSherlock
這是爲什麼?
這是什麼樣子:
,這就是我想要它看起來像:
行,所以不管ActionBarSherlock第一個測試,看看你創建你的意圖正確地,ABS使用與通用選擇器相同的代碼,以便在執行此代碼時查看您所查找的應用程序是否顯示。
Intent I= new Intent(Intent.ACTION_SEND);
I.setType("text/plain");
I.putExtra(android.content.Intent.EXTRA_TEXT, "My Test Text");
startActivity(Intent.createChooser(I,"Share using ..."));
所有這些應用程序的可處理純文本會顯示出來,如果Facebook,或任何你期望是不是有那麼這些應用程序的不支持您已註冊的類型(普通/文本ACTION_SEND意圖)。 (Facebook的,但一分鐘更多)
ABS有一個使用共享操作提供程序的示例,但它嘗試發送照片,而不是文本消息(狀態更新)您應該使用的設置是這樣
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate your menu.
getSupportMenuInflater().inflate(R.menu.share_action_provider, menu);
// Set file with share history to the provider and set the share intent.
MenuItem item = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
ShareActionProvider provider = (ShareActionProvider) item.getActionProvider();
provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
// Note that you can set/change the intent any time,
// say when the user has selected an image.
provider.setShareIntent(createShareIntent());
return true
}
這裏是將用於匹配應用程序的,並從樣品
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/plain");
Uri uri = Uri.fromFile(getFileStreamPath("shared.png"));
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.putExtra(Intent.EXTRA_TITLE, "This is an android icon");
return shareIntent;
}
一一列舉出來的意圖,但你希望它是
private Intent createShareIntent() {
Intent I= new Intent(Intent.ACTION_SEND);
I.setType("text/plain");
I.putExtra(android.content.Intent.EXTRA_SUBJECT, "TEST - Disregard");
I.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("http://noplace.com"));
}
這應該給你在ABS上的相同列表,它在我用上面的選擇器顯示的小測試存根中。
現在的壞消息。 Facebook應用程序並沒有真正起作用,它會啓動用戶更新頁面,但它不會填充文本。這是一次又一次,再次破裂,但我昨晚試了一下,結果失敗了。這是一個已報告和接受的Facebook應用程序錯誤。儘管無法設置標題,但您可以發佈照片How many times will Facebook break/fix this?
僅需注意未來的讀者,ActionBarSherlock的ShareActionProvider
不支持從v4.1.0開始的溢出菜單。也許這可能會在未來更新。
下面是從share_action_provider.xml
文件從SampleList演示代碼:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item_share_action_provider_action_bar"
android:showAsAction="always"
android:title="@string/action_bar_share_with"
android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" />
<!-- XXX: For now, ShareActionProviders must be displayed on the action bar -->
<!--item android:id="@+id/menu_item_share_action_provider_overflow"
android:showAsAction="never"
android:title="@string/action_bar_share_with"
android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" /-->
</menu>
這個答案的信息 - 我花了相當長的一段時間才能找到這一點,所以我想使未來的讀者更容易找到。
ActionShareProvider列出了所有可以處理您爲提供者創建的意圖類型的應用程序。如果您只看到4個,那麼這些是唯一接受您創建的意圖類型數據的特定應用程序。此外,爲什麼你想要一個照片分享(類別或應用程序,不確定)被列爲純文本? – Idistic
我正在嘗試使用Share Action Provider作爲用戶共享鏈接來下載我的應用程序的選項,並且我有像Facebook和Twitter這樣的應用程序,並且沒有這些應用程序的選項。我所看到的圖片是我下載的另一個應用程序,當我選擇「查看所有...」時,我可以共享10個不同的應用程序。 – GreekOphion