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);
}
}