ShareActionProvider 为空 [英] ShareActionProvider is null
本文介绍了ShareActionProvider 为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经搜索了 3 或 4 天的解决方案.我努力了:使用支持库共享操作提供程序时出现空指针异常一>或者为什么 MenuItemCompat.getActionProvider 返回 null? 和其他一些但我在 ShareActionProvider 上仍然为空.我对开发 Android 应用程序还很陌生,所以我真的需要一些帮助.
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.
我的 xml 菜单文件是:
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>
我的片段是:
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;
}
}
作为导入,我有:
import android.support.v7.widget.ShareActionProvider;
推荐答案
您可以创建一个 ShareActionProvider 并分配它.
You could just create a ShareActionProvider and assign it.
mShareActionProvider = new ShareActionProvider();
mShareActionProvider.setShareIntent(createShareIntent())
MenuItemCompat.setActionProvider(item, mShareActionProvider);
这篇关于ShareActionProvider 为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文