标签: shareactionprovider

无法将Action Provider转换为共享操作提供程序

以下是我的活动的代码

    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v7.widget.ShareActionProvider;
    import android.view.Menu;
    import android.view.MenuItem;

    public class MainActivity extends Activity {
    private ShareActionProvider shareAction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        MenuItem item = menu.getItem(R.id.menu_settings);
        shareAction = (ShareActionProvider) item.getActionProvider();
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是从ActionProvider到ShareActionProvider存在一个强制转换错误.为什么它如下所示是activity_menu.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="always"
    android:title="@string/menu_settings"
    android:actionProviderClass="android.widget.ShareActionProvider"
    />

</menu>
Run Code Online (Sandbox Code Playgroud)

android shareactionprovider

59
推荐指数
3
解决办法
2万
查看次数

使用ShareActionProvider时如何关闭共享历史记录?

Android 4.0中可用的新ShareActionProvider(如果您使用的是ActionBarSherlock,则可在早期版本中使用)具有最后使用的项目显示在操作栏中的功能.无论如何要关闭它?

android actionbarsherlock android-actionbar shareactionprovider

25
推荐指数
3
解决办法
8814
查看次数

ShareActionProvider与拆分ActionBar

我正在使用a ShareActionProvider并希望在顶部没有足够的空间时利用拆分的ActionBar android:uiOptions="splitActionBarWhenNarrow".

当ActionBar不需要拆分时,该操作正常:

景观

但是,当ActionBar确实需要拆分时,ActionProvider似乎完全打破了较低的ActionBar布局.它填充顶部ActionBar下方的整个视口,并且不会显示操作本身:

肖像

有没有人能够成功地将这两个功能结合使用?

android android-4.0-ice-cream-sandwich shareactionprovider

19
推荐指数
1
解决办法
2167
查看次数

在Actionbar ShareActionProvider上设置自定义共享图标

我正在尝试设置图标ShareActionProvider,需要一个纯白色而不是半透明的白色.

但是,在share_menu.xml和代码中设置不起作用.只是想知道是否有人在扩展ShareActionProvider之前已经解决了这个问题.(我正在使用actionbarsherlock)

@Override
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
    inflater.inflate(R.menu.share_menu, menu);
    MenuItem actionItem = menu.findItem(R.id.share_action_provider);

    ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
     actionProvider.setShareIntent(mShareIntent);

    // re-setting the icon as it's not being picked up from the menu xml file
    actionItem.setIcon(R.drawable.ic_action_share);

    super.onCreateOptionsMenu(menu, inflater);

}
Run Code Online (Sandbox Code Playgroud)

share_menu.xml

 <item android:id="@+id/share_action_provider"
        android:showAsAction="ifRoom"
        android:title="@string/share_with"
        android:icon="@drawable/ic_action_share"
        android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" />
Run Code Online (Sandbox Code Playgroud)

更新:也尝试在风格中设置它,但没有快乐

<style name="Theme.MyApp" parent="Theme.Sherlock.Light">
        <item name="actionModeStyle">@style/ActionModeStyle</item>
        <item name="android:actionModeStyle">@style/ActionModeStyle</item>
</style>

<style name="ActionModeStyle" parent="Widget.Sherlock.ActionMode">
      <item name="actionModeShareDrawable">@drawable/ic_action_share</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock shareactionprovider

15
推荐指数
3
解决办法
8835
查看次数

从毕加索获得图像uri?

我有一个相当大的图像URL列表,我用它来加载ViewPager使用Picasso.我需要能够通过意图(最终通过ShareActionProvider共享)为这些图像提供共享功能.从我读过的内容来看,Picasso并不是真正能够开箱即用来处理这类事情的,尽管它提供了所有必要的工具.

我在研究之前的计划是创建一个LruCache使用url作为键和位图值的简单.这种缓存将onBitmapLoaded通过Picasso的Target界面进行.每当我想要共享图像时,我都会检查位图的缓存.如果它不在那里,我将与毕加索一起取.既然我有一个缓存的位图,我会写一个文件(...这部分似乎不对,虽然我必须写一个文件来获取一个uri,对吗?)并添加文件uri到意图.

但是我看到Picasso.Builder我可以设置(并保留对我自己的缓存的引用) - /sf/answers/1298679161/.这意味着我可以Target通过正确实施hashCodeequals方法来消除习惯和混乱,以确保准确的回收,检索等.

我的问题是,毕加索如何使用这个缓存?有什么关键?有没有办法获得位图Uri而不将其写入磁盘?

android caching bitmap shareactionprovider picasso

15
推荐指数
1
解决办法
3370
查看次数

使用支持库共享操作提供程序时出现空指针异常

以下是我的活动代码.在这里我使用支持库appcompat

   import android.content.Intent;
   import android.os.Bundle;
   import  android.support.v4.view.MenuItemCompat;
   import android.support.v7.app.ActionBarActivity;
   import android.support.v7.widget.ShareActionProvider;
   import android.view.Menu;
   import android.view.MenuItem;

  public class MainActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    MenuItem item = (MenuItem) menu.findItem(R.id.share_options);
    ShareActionProvider shareAction = (ShareActionProvider) MenuItemCompat
            .getActionProvider(item);
    Intent shareIntent = new Intent(Intent.ACTION_SEND)
            .setAction(Intent.ACTION_SEND)
            .putExtra(Intent.EXTRA_TEXT, "MobiTexter")
            .setType("text/plain");
    shareAction.setShareIntent(shareIntent);
    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

}

以下是我的XML文件,用于菜单选项,即ShareActionProvider Widget …

android android-appcompat shareactionprovider

13
推荐指数
1
解决办法
5513
查看次数

无法从ActionProvider强制转换为ShareActionProvider

我正在尝试在ActionBarSherlock中实现ShareActionProvider.

以下代码给出了这个错误:

无法从ActionProvider强制转换为ShareActionProvider

ReadingActivity.java

@Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.menu2b, (Menu) menu);
            menu.getItem(0).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS|MenuItem.SHOW_AS_ACTION_WITH_TEXT);
        menu.getItem(1).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS|MenuItem.SHOW_AS_ACTION_WITH_TEXT);

        MenuItem menuItem = menu.findItem(R.id.share);
          // Get the provider and hold onto it to set/change the share intent.
        ShareActionProvider shareActionProvider = (ShareActionProvider) menuItem.getActionProvider();

        // Set the default share intent
        shareActionProvider.setShareIntent(getDefaultShareIntent());
        return super.onCreateOptionsMenu(menu);
    }
Run Code Online (Sandbox Code Playgroud)

menu2b.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    ...
    <item android:id="@+id/share"
          android:title="Share"
          android:icon="@drawable/ic_share_action_bar"
          android:actionProviderClass="android.widget.ShareActionProvider"/>
</menu>
Run Code Online (Sandbox Code Playgroud)

java android actionbarsherlock android-actionbar shareactionprovider

10
推荐指数
1
解决办法
3362
查看次数

ShareActionProvider刷新文本

我有一个EditText,它最初填充了本地数据库中的文本.当用户离开屏幕(onPause)时,更新的文本存储在本地数据库中.我还有一个ShareActionProvider(使用ActionBarSherlock).

当用户使用ShareActionProvider时,旧文本将发送到目标应用程序.当用户按下菜单项时,如何刷新通过actionprovider发送的文本?

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.share_action_provider, menu);
    MenuItem actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
    mActionProvider = (ShareActionProvider) actionItem.getActionProvider();
    mActionProvider.setShareIntent(createShareIntent());
}

private Intent createShareIntent() {
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, editText.getText().toString());
    return shareIntent;
}
Run Code Online (Sandbox Code Playgroud)

当用户按下菜单项时,似乎没有调用onOptionsItemSelected().所以我尝试了以下onPause(),没有运气:

@Override
public void onPause() {
    super.onPause();
    mActionProvider.setShareIntent(createShareIntent());
    // save to db:
    getActivity().saveText(editText.getText().toString());
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句:这段代码都在片段中.

android android-fragments actionbarsherlock shareactionprovider

10
推荐指数
1
解决办法
2066
查看次数

如何隐藏共享操作提供程序附近的共享操作(最常用)图标?

看图.我如何隐藏图标"P",这意味着分享到Pinterest?

在此输入图像描述

它们都在操作栏上,我使用ActionBarSherlock.

android actionbarsherlock android-actionbar shareactionprovider

10
推荐指数
2
解决办法
4356
查看次数

带有ShareActionProvider-v7的ActionBar上ShareAction图标问题的大小

我是工作在我老ShareAction在我ActionBar和它的工作,因为我上更新了我的包SDK Manager.我看到谷歌的这篇文档说,

要为您的活动添加"分享"操作,请ShareActionProvider在应用栏的菜单资源中添加.例如:

而且我添加了相同的内容而不添加任何内容Icons:

<item android:id="@+id/action_share"
   android:title="@string/share"
   app:showAsAction="ifRoom"
   app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
Run Code Online (Sandbox Code Playgroud)

我用的是:

app:actionProviderClass="Mypackagename.ShareActionProvider"
Run Code Online (Sandbox Code Playgroud)

使用ShareActionProvider以下代码的自定义.您可以在此处查看.

我看到了一个黑客或技巧(使用ShareActionProvider-v4),自从我决定使用以来一切都很好android.support.v7.widget.ShareActionProvider.

那么,这是我目前的代码:

<item
   android:id="@+id/shareac"
   android:title="@string/share"
   app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
   app:showAsAction="always" />
Run Code Online (Sandbox Code Playgroud)

我没有使用,Icon因为这里的文档说,

您不需要指定图标,因为ShareActionProvider 窗口小部件会处理自己的外观和行为.但是,如果操作在溢出菜单中结束,则需要使用android:title指定标题.

以下是我到目前为止所做的事情:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main_details, menu);
        // Locate MenuItem with ShareActionProvider
        MenuItem item = menu.findItem(R.id.shareac);
        // Fetch and store ShareActionProvider
        mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
        Intent …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar shareactionprovider android-studio

10
推荐指数
1
解决办法
906
查看次数