Que*_*mia 25 android actionbarsherlock android-actionbar shareactionprovider
Android 4.0中可用的新ShareActionProvider(如果您使用的是ActionBarSherlock,则可在早期版本中使用)具有最后使用的项目显示在操作栏中的功能.无论如何要关闭它?
Nis*_*sar 21
对我来说,避免历史图标的最佳解决方案是不使用ShareActionProvider而不是它,将其创建为任何其他操作:
<item
android:id="@+id/menu_action_share"
android:showAsAction="ifRoom"
android:icon="@drawable/ic_action_share"
android:title="@string/share"/>
Run Code Online (Sandbox Code Playgroud)
在menu/activity_actions.xml中放置一个带有ic_action_share图标的项目...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
正常膨胀菜单......
private void actionShare(){
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, "my string");
i.putExtra(Intent.EXTRA_TEXT, "another string");
startActivity(i);
//Or like above will always display the chooser
//startActivity(Intent.createChooser(i, getResources().getText(R.string.share)));
}
Run Code Online (Sandbox Code Playgroud)
创建一个具有ACTION_SEND意图的方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share:
actionShare();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
最后从onOptionsItemSelected调用此方法
更多信息 - >将简单数据发送到其他应用程序
sve*_*ier 13
自己开始分享活动:
shareActionProvider.setShareIntent(intent);
shareActionProvider.setOnShareTargetSelectedListener(this);
@Override
public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) {
// start activity ourself to prevent search history
context.startActivity(intent);
return true;
}
Run Code Online (Sandbox Code Playgroud)
然后,ShareActionProvider不会将所选活动添加到共享历史记录中.
没有 API 可以执行此操作。然而,该类非常简单,您可以很容易地创建自己的版本,而ShareActionProvider不会保留历史记录。您只需使用其他一些排序方式(例如,按字母顺序)来确定可能目标的排序顺序。
| 归档时间: |
|
| 查看次数: |
8814 次 |
| 最近记录: |