Java 从PagerAdapter到Fragment
我需要从Java 从PagerAdapter到Fragment,java,android,android-intent,android-fragments,Java,Android,Android Intent,Android Fragments,我需要从theageadapter.java内部SliderHome.java获取传递的值。我如何实现这一点?我试了很多,但没有成功 这是我的代码: ageadapter.java public class ThePagerAdapter extends PagerAdapter { Context context; @Override public int getCount() { return list.size(); } @Override public boolean isV
theageadapter.java
内部SliderHome.java
获取传递的值。我如何实现这一点?我试了很多,但没有成功
这是我的代码:
ageadapter.java
public class ThePagerAdapter extends PagerAdapter {
Context context;
@Override
public int getCount() {
return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}
public ThePagerAdapter(Context context,List<Slider> list) {
this.list = list;
this.context = context;
}
@Override
public Object instantiateItem(final ViewGroup container, int position) {
// Declare Variables
ImageView imgflag;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.image_item, container, false);
// Capture position and set to the TextViews
final String id = list.get(position).getId();
imgflag = (ImageView) itemView.findViewById(R.id.imageView);
imgflag.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i = new Intent(context, SliderMore.class);
i.putExtra("slider_id", id);
context.startActivity(i);
}
});
((ViewPager) container).addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// Remove viewpager_item.xml from ViewPager
((ViewPager) container).removeView((RelativeLayout) object);
}
}
public class SliderHome extends Fragment {
ViewPager viewPager;
ImageView iv2,iv3;
String slider_id;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.slider_more, container, false);
viewPager = (ViewPager) rootView.findViewById(R.id.viewPager);
iv2 = (ImageView) rootView.findViewById(R.id.imageView2);
iv3 = (ImageView) rootView.findViewById(R.id.imageView3);
return rootView;
}
有解决办法吗?提前谢谢 在这种情况下,我喜欢使用工厂方法模式 例如:
public static MatchDetailSummaryFragment newInstance(String matchIdString, int position) {
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
args.putString(ARGS_MY_ID, matchIdString);
args.putInt(ARG_POSITION,position);
fragment.setArguments(args);
return fragment;
}
public MyFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.mPosition = getArguments().getInt(ARG_POSITION);
this.id = getArguments().getString(ARGS_MY_ID) != null)
}
您可以调用以下命令:
public void fillMyPagerAdapter()
{
mChildFragments = new Hashtable<Integer,GxuBaseFragment>();
int count = 0;
MyFragment a = MyFragment.newInstance(Integer.toString(my.getId()),count);
mChildFragments.put(count,a);
count += 1;
mViewPagerAdapter.setTabHolderScrollingContent(this);
mPager.setAdapter(mViewPagerAdapter);
mPagerSlidingTabStrip.setViewPager(mPager);
mPagerSlidingTabStrip.setOnPageChangeListener(this);
}
public void fillMyPagerAdapter()
{
mChildFragments=新哈希表();
整数计数=0;
MyFragment a=MyFragment.newInstance(Integer.toString(my.getId()),count);
mChildFragments.put(计数,a);
计数+=1;
mViewPagerAdapter.setTabHolderScrollingContent(此);
mPager.setAdapter(mViewPagerAdapter);
MPagerSlidingTastrip.setViewPager(mPager);
MPagerSlidingTastrip.setOnPageChangeListener(此);
}
这段代码可能不起作用,因为它是我的产品代码的几个摘录,但它将解释主要思想。作为一个例子,阅读谷歌自己的第一个片段示例:@Blackbelt:yes,我想获得
I.putExtra(“slider\u id”,id)代码>在SliderMore
@AnkurAggarwal中的值:如何使其成为可能?不可能使用startActivity(intent)启动一个片段,请阅读谷歌指南片段,将参数传递给片段,您可能会使用fragment.setArguments(bundle)