android - 在 ActionBar 中禁用 ShareActionProvider

标签 android android-actionbar actionbarsherlock

我打算禁用 ActionBar 的操作模式中显示的 ShareActionProvider。但是

menu.findItem(R.id.myShareItem).setEnabled(false)  

不会禁用它。我是不是遗漏了什么或者它就是无法禁用?

更新:

在 Jelly Bean 上测试,这个独立的 Activity 类演示了问题:

package com.example;

import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.MimeTypeMap;
import android.widget.ShareActionProvider;
import android.widget.Toast;

public class MyActivity extends Activity {

    private MenuItem mShareItem;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        ShareActionProvider sap = new ShareActionProvider(this);

        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType(MimeTypeMap.getSingleton().getMimeTypeFromExtension("jpg"));
        sap.setShareIntent(shareIntent);


        mShareItem = menu.add("Share");
        mShareItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        mShareItem.setActionProvider(sap);

        MenuItem toggleItem = menu.add("Toggle");
        toggleItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        //---shouldn't this work ? -----
        mShareItem.setEnabled(!mShareItem.isEnabled());

        Toast.makeText(this,mShareItem + " enabled: " + mShareItem.isEnabled(),Toast.LENGTH_SHORT).show();

        return super.onOptionsItemSelected(item);
    }

}

最佳答案

这可能是一个错误,reported here .

当前的解决方法:setShareIntent(null)

关于android - 在 ActionBar 中禁用 ShareActionProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13220477/

相关文章:

Android ActionBarSherlock 选项卡、Android 2.3 或更低版本上的 NoClassDefFoundError

java - 带有 appcompat 库 v7 的 ActionBar(java.lang.IllegalStateException : You need to use a Theme. AppCompat 主题)

android - 如何区分 ActionBarSherlock 中的两个菜单项点击?

android - ActionBarSherlock Fragments 选项卡在 Android 的非 ICS 版本中看起来不同

android - 仅在 Lollipop 中出现 GCM SERVICE_NOT_AVAILABLE 异常

Android,ADB,将 STDOUT 重定向到套接字

android - 如何从 ViewPager 更改子 fragment imageView

java - 如何更改 Sliding TabLayout 的文字颜色?

Android - 从项目中完全删除 ActionBar Sherlock (ABS)

android - APK 大小对于只有按钮和微调器的 apk 来说很大