3

ShareActionProviderActionBarのアクションモードに表示されているものを無効にしようとしています。だが

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

}
4

2 に答える 2

1

次のことを試すことができます。

setShareIntent(new Intent());

これでうまくいくはずです。

于 2014-08-20T19:38:40.327 に答える
1

これはおそらくバグであり、ここで報告されています

現在の回避策:setShareIntent(null)

于 2012-11-09T07:23:57.960 に答える