我想禁用在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);
}
}发布于 2012-11-09 15:23:58
可能是个bug,reported here。
当前解决方法:setShareIntent(null)
发布于 2014-08-21 03:38:40
您可以尝试以下操作:
setShareIntent(new Intent());这应该能起到作用。
https://stackoverflow.com/questions/13220477
复制相似问题