我要禁用ShareActionProvider
在 ActionBar 的操作模式中显示的功能。但
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);
}
}