ShareActionProvider 関数を変更して、onClick
イベントをインターセプトし、共有したいコンテンツを準備してから呼び出すことができるようにしようとしていますsetShareIntent()
。これまでのところ、ソースコードをコピーして、コードのコピーでコンパイル/実行しようとしましたShareActionProvider()
。MyShareActionProvider()
との中で定義されているShareActionProvider()
用途ActivityChooserModel
とActivityChooserView
クラス
android.support.v7.internal.widget.ActivityChooserModel
android.support.v7.internal.widget.ActivityChooserView
関数activityChooserView.setProvider(this)
内の呼び出しを除いて、すべて問題ないようです。onCreateActionView()
@Override
public View onCreateActionView() {
// Create the view and set its data model.
ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mShareHistoryFileName);
ActivityChooserView activityChooserView = new ActivityChooserView(mContext);
activityChooserView.setActivityChooserModel(dataModel);
// Lookup and set the expand action icon.
TypedValue outTypedValue = new TypedValue();
mContext.getTheme().resolveAttribute(R.attr.actionModeShareDrawable, outTypedValue, true);
Drawable drawable = mContext.getResources().getDrawable(outTypedValue.resourceId);
activityChooserView.setExpandActivityOverflowButtonDrawable(drawable);
activityChooserView.setProvider(this);
// Set content description
activityChooserView.setDefaultActionButtonContentDescription(
R.string.shareactionprovider_share_with_application);
activityChooserView.setExpandActivityOverflowButtonContentDescription(
R.string.shareactionprovider_share_with);
return activityChooserView;
}
内部で使用されている ActionProvideractivityChooser.setProvider()
は から来ているようで、 ではandroid.support.v4.view.ActionProvider
ありませんandroid.view.ActionProvider
。
のインポートをActionProvider
toに変更するandroid.support.v4.view.ActionProvider
と、コンパイルは正常に行われ、アプリを起動できますが、メニューが膨張すると、エラーが表示されますMyShareActionProvider
(これはmenu.xml
フルパスで使用され、の拡張クラスですandroid.support.v4.viewActionProvider
)にキャストできません。android.viewActionProvider
これが返されると思いinflater.inflate()
ます。
ここから先に進む方法がわからない。
ありがとう、ゲイリー