我試圖將一個片段中單擊的圖像的位置傳遞給Pager FragmentActivity,以便它顯示在屏幕幻燈片中。我將意圖傳遞給尋呼機,但getItem()總是從我的相冊中的第一張圖像開始屏幕幻燈片,而不是我單擊的圖像。getItem()如何在ViewPager中的Android中工作?
以我ImageListFragment
:
public void onBindViewHolder(ViewHolder viewHolder, final int position) {
final int imageResId = mImageResIds[position];
viewHolder.setData(imageResId);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = FooPager.newIntent(getActivity(), position);
startActivity (intent);
// mListener.OnGalleryImageSelected(imageResId);
}
});
}
然後在我的Pager
FragmentActivity:
public static final String EXTRA_IMAGE_ID = "meow";
public static int id = 0;
private ViewPager mViewPager;
private Integer images [] = {
R.drawable.a, R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,
R.drawable.f, R.drawable.g, R.drawable.h,R.drawable.i,R.drawable.j,
R.drawable.k, R.drawable.l, R.drawable.m,R.drawable.n,R.drawable.o,
R.drawable.p, R.drawable.q, R.drawable.r
};
public static Intent newIntent(Context packageContext, int id) {
Intent intent = new Intent(packageContext,FooPager.class);
intent.putExtra(EXTRA_IMAGE_ID,id);
return intent;
}
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView(R.layout.activity_image_pager);
mViewPager = (ViewPager) findViewById (R.id.activity_image_pager_view_pager);
FragmentManager fragmentManager = getSupportFragmentManager();
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
@Override
public Fragment getItem(int position) {
int id = images[position];
return ImageDetailFragment.newInstance(id);
}
@Override
public int getCount() {
return images.length;
}
});
在的getItem position
()總是從0開始,因此,在我的./drawable
目錄總是選擇第一圖像。我如何使它在getItem()中的位置與我在ImageListFragment
中單擊的圖像的位置一致?此時,getItem()
不知道從意圖進入的位置,但我不知道如何解決此問題,而不會使getItem()
反覆顯示相同的圖像(在屏幕滑動模式下)。
下面是更多的代碼:
那麼如何從我的ImageListFragment到鏈接中描述的'FragmentStatePagerSupport'? (如果每次點擊創建一個新的意圖觸發一個新的活動)。 –
查看我的更新回答。 – Cheticamp