ShareActionProvider为null [英] ShareActionProvider is null
问题描述
我一直在寻找关于这个解决方案3或4天。我努力了:
<一href=\"http://stackoverflow.com/questions/19131873/null-pointer-exception-in-using-support-library-share-action-provider\">Null使用支持库共享行动提供商指针异常
要么
<一href=\"http://stackoverflow.com/questions/19358510/why-menuitemcompat-getactionprovider-returns-null\">why MenuItemCompat.getActionProvider返回null?以及其他一些
但我仍得空上ShareActionProvider。我是pretty新开发的Android应用程序,所以我真的需要一些帮助。
我的XML菜单文件是:
&LT;菜单的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:程序=http://schemas.android.com/apk/res-auto&GT;
&LT;项目
机器人:ID =@ + ID / action_share
机器人:标题=@字符串/ action_share
应用:showAsAction =总是
机器人:图标=@机器人:可绘制/ ic_menu_share
机器人:actionProviderClass =android.support.v7.widget.ShareActionProvider/&GT;&LT; /菜单&gt;
和我的片段是:
公共静态类DailyActivityFragment扩展片段{
私有静态最后弦乐LOG_TAG =Dailyshare;
私人ShareActionProvider mShareActionProvider; 公共DailyActivityFragment(){
setHasOptionsMenu(真);
} @覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
捆绑savedInstanceState){
查看rootView = inflater.inflate(R.layout.fragment_detail,集装箱,FALSE);
返回rootView;
} 公共无效onCreateOptionsMenu(菜单菜单,MenuInflater气筒){
inflater.inflate(R.menu.detailfragment,菜单);
菜单项项= menu.findItem(R.id.action_share);
mShareActionProvider =(ShareActionProvider)MenuItemCompat.getActionProvider(项目);
如果(mShareActionProvider!= NULL){
mShareActionProvider.setShareIntent(createShareIntent());
}其他{
Log.i(LOG_TAG,为空);
}
} 私人意图createShareIntent(){
意图shareIntent =新意图(Intent.ACTION_SEND);
shareIntent.setType(text / plain的);
shareIntent.putExtra(Intent.EXTRA_TEXT,
这段文字将共享);
返回shareIntent;
}
}
为导入我有:
进口android.support.v7.widget.ShareActionProvider;
您可以只创建一个ShareActionProvider,并为其分配。
mShareActionProvider =新ShareActionProvider();
mShareActionProvider.setShareIntent(createShareIntent())
MenuItemCompat.setActionProvider(项目,mShareActionProvider);
I have been searching for 3 or 4 days about a solution on this. I have tried: Null Pointer exception in using support library share action provider or why MenuItemCompat.getActionProvider returns null? and some others but still I get null on ShareActionProvider. I am pretty new on developing android apps so I really need some help.
My xml menu file is:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_share"
android:title="@string/action_share"
app:showAsAction="always"
android:icon="@android:drawable/ic_menu_share"
android:actionProviderClass="android.support.v7.widget.ShareActionProvider"/></menu>
and my fragment is:
public static class DailyActivityFragment extends Fragment {
private static final String LOG_TAG = "Dailyshare";
private ShareActionProvider mShareActionProvider;
public DailyActivityFragment() {
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_detail, container, false);
return rootView;
}
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
inflater.inflate(R.menu.detailfragment, menu);
MenuItem item = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(createShareIntent());
}else{
Log.i(LOG_TAG, "is null");
}
}
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,
"this text will be shared");
return shareIntent;
}
}
as an import I have:
import android.support.v7.widget.ShareActionProvider;
You could just create a ShareActionProvider and assign it.
mShareActionProvider = new ShareActionProvider();
mShareActionProvider.setShareIntent(createShareIntent())
MenuItemCompat.setActionProvider(item, mShareActionProvider);
这篇关于ShareActionProvider为null的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!