Android setShareIntent within fragment(片段内的Android setShareIntent)
问题描述
1.背景
我有一个屏幕有一个
ShareActionProvider
还有一个
ViewPager
使用片段.
我希望做的是从当前可见的片段中获取一些信息来创建一个意图,然后我就可以在 ShareActionProvider 上设置意图.
What I was hoping to do was get some information from inside the currently visible fragment to create an intent, I would then be able to set the intent on the ShareActionProvider.
这是我用来设置 ShareActionProvider 意图的代码:
This is the code I use to set the intent of the ShareActionProvider:
MenuItem actionItem = men.getMenu().findItem(R.id.menu_item_share_action_provider_action_bar);
ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider();
actionProvider.setShareIntent(createShareIntent(mProduct.mProduct));
我已经尝试在几个地方使用它,例如在 Fragment 类的这些函数中:
I have tried using this in several places such as within these functions of the Fragment class :
onCreateView
onStart
我也尝试在 FragmentPagerAdapter 类中的这些函数中使用它:
I have also tried using it in these functions within the FragmentPagerAdapter class :
getItem
<强>2.问题
虽然意图实际上是在 ShareActionProvider 中设置的,但获得的信息是针对下一个片段(当前未显示的片段).例如:
Although the intent is actually getting set within the ShareActionProvider, the information that is obtained is for the next fragment (the one not currently being shown). For example:
如果我有 4 个片段:frag1、frag2、frag3、frag4我目前正在查看frag1",ShareActionProvider 将尝试共享frag2".这是真的,直到它到达frag4",它将共享正确的值.
If I have 4 fragments : frag1, frag2, frag3, frag4 and I am currently viewing "frag1" the ShareActionProvider will attempt to share "frag2". This is true until it reaches "frag4" where it will share the correct value.
我的猜测是片段分页器创建了当前视图和下一个视图(隐藏),这反过来又设置了 ShareActionProvider.如果是这种情况,那么setShareIntent"的正确位置在哪里?
My guess is that the fragment pager creates the current view and the next view (hidden), which is in turn setting the ShareActionProvider. If this is the case then where is the correct place to "setShareIntent"?
推荐答案
我自己设法弄清楚了如何做到这一点.我最终做的是覆盖
I managed to figure out how to do this myself. What I ended up doing is overriding the
OnPageChangeListener
在fragmentactivity中
in the fragmentactivity
private final OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
TestFragment frag = (TestFragment) adapter.mFragments.get(pager.getCurrentItem());
frag.setShareActionIntent();
}
};
这篇关于片段内的Android setShareIntent的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:片段内的Android setShareIntent


基础教程推荐
- Android ViewPager:在 ViewPager 中更新屏幕外但缓存的片段 2022-01-01
- “让"到底是怎么回事?关键字在 Swift 中的作用? 2022-01-01
- 如何使 UINavigationBar 背景透明? 2022-01-01
- :hover 状态不会在 iOS 上结束 2022-01-01
- 使用 Ryzen 处理器同时运行 WSL2 和 Android Studio 2022-01-01
- LocationClient 与 LocationManager 2022-01-01
- 在 iOS 上默认是 char 签名还是 unsigned? 2022-01-01
- 固定小数的Android Money Input 2022-01-01
- Android文本颜色不会改变颜色 2022-01-01
- 如何使用 YouTube API V3? 2022-01-01