查看寻呼机未被称为Android屏幕幻灯片的活动
最近从Android开发开始,我正在创建一个屏幕幻灯片,在选择图片库(网格视图)的一部分后会出现。我遵循了Android教程,但是我遇到的问题是ViewPager似乎不起作用(活动中的日志没有打印出来),我在新片段中看到的唯一内容是一些文本 下面我已经包括了代码,任何帮助都将不胜感激 这是从gallery进行初始调用以显示滑块GoToGallerySlaider()的地方 PhotoGalleryFragment.java查看寻呼机未被称为Android屏幕幻灯片的活动,android,android-fragments,android-activity,android-viewpager,Android,Android Fragments,Android Activity,Android Viewpager,最近从Android开发开始,我正在创建一个屏幕幻灯片,在选择图片库(网格视图)的一部分后会出现。我遵循了Android教程,但是我遇到的问题是ViewPager似乎不起作用(活动中的日志没有打印出来),我在新片段中看到的唯一内容是一些文本 下面我已经包括了代码,任何帮助都将不胜感激 这是从gallery进行初始调用以显示滑块GoToGallerySlaider()的地方 PhotoGalleryFragment.java public class PhotoGalleryFragment ex
public class PhotoGalleryFragment extends BaseFragment {
private static final String TAG = PhotoGalleryFragment.class.getSimpleName();
public static final String EVENT_ID_EXTRA = "EventDetailFragment.EventIdExtra";
private GridView grid;
public List<EventPhoto> eventDetailPhotoList;
@Bind(R.id.photoRoll)
GridView photoRoll;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_event_detail_photo_gallery, container, false);
grid = (GridView) view.findViewById(R.id.photoRoll);
Context aContext = getActivity().getBaseContext();
grid.setAdapter(new PhotoGalleryAdapter(aContext, eventDetailPhotoList));
grid.setOnItemClickListener((parent, v, position, id) ->
goToGallerySlider(parent, v, position, id));
return view;
}
@Override
public int getTitleResourceId() {
return R.string.photo_gallery;
}
private void goToGallerySlider(ViewGroup parent, View v, int position, long id) {
Log.d(TAG, "!!!We are in the goToGallerySlider() call function!");
GallerySliderFragment sliderFragment = new GallerySliderFragment();
sliderFragment.eventDetailPhotoList = eventDetailPhotoList;
getBaseActivity().setFragment(sliderFragment, true);
}
}
public class GallerySliderFragment extends BaseFragment {
private static final String TAG = GallerySliderFragment.class.getSimpleName();
public List<EventPhoto> eventDetailPhotoList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "!!!We are inside the onCreate in GallerySliderFragment");
ViewGroup view = (ViewGroup) inflater.inflate(R.layout.fragment_event_detail_photo_gallery_slider, container, false);
((AngelPointsApplication) getActivity().getApplication()).getComponent().inject(this);
ButterKnife.bind(this, view);
return view;
}
public int getTitleResourceId() {return R.string.gallery_slider; }
}
据我所知,您应该在
grid.setAdapter
行中得到一个错误,因为ArrayList尚未初始化什么是getBaseActivity().setFragment
?并且sliderFragment.eventDetailPhotoList=eventDetailPhotoList
不是向片段“传递数据”的推荐方法。@cricket\u 007 GridView没有问题。我遇到的问题是viewPager。未调用PhotoGalleryActivity.java中的任何内容。从Android示例()中,我应该看到一个可滑动的Lorem ipsum。暂时不考虑照片数组。@cricket_007 getBaseActivity.setFragment是我导航/转换到将具有滑块的新片段的方式。我不知道BaseFragment
或BaseActivity
正在做什么,但看起来您已经拥有了所有必要的代码PhotoGalleryActivity
应该显示5个GallerySliderFragment
实例。据我所知,您应该在grid.setAdapter
行中得到一个错误,因为ArrayList尚未初始化什么是getBaseActivity().setFragment
?并且sliderFragment.eventDetailPhotoList=eventDetailPhotoList
不是向片段“传递数据”的推荐方法。@cricket\u 007 GridView没有问题。我遇到的问题是viewPager。未调用PhotoGalleryActivity.java中的任何内容。从Android示例()中,我应该看到一个可滑动的Lorem ipsum。暂时不考虑照片数组。@cricket_007 getBaseActivity.setFragment是我导航/转换到将具有滑块的新片段的方式。我不知道BaseFragment
或BaseActivity
正在做什么,但看起来您已经拥有了所有必要的代码PhotoGalleryActivity
应显示5个GallerySliderFragment
实例。
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
public class GallerySliderFragment extends BaseFragment {
private static final String TAG = GallerySliderFragment.class.getSimpleName();
public List<EventPhoto> eventDetailPhotoList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "!!!We are inside the onCreate in GallerySliderFragment");
ViewGroup view = (ViewGroup) inflater.inflate(R.layout.fragment_event_detail_photo_gallery_slider, container, false);
((AngelPointsApplication) getActivity().getApplication()).getComponent().inject(this);
ButterKnife.bind(this, view);
return view;
}
public int getTitleResourceId() {return R.string.gallery_slider; }
}
public class PhotoGalleryActivity extends BaseActivity {
private static final String TAG = PhotoGalleryFragment.class.getSimpleName();
private ViewPager mPager;
private PagerAdapter mPagerAdapter;
private static final int NUM_PAGES = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "!!!We are in the onCreate in PhotoGalleryActivity");
setContentView(R.layout.activity_event_detail_photo_gallery_slider);
mPager = (ViewPager) findViewById(R.id.viewPager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
}
public void onBackPressed() {
if (mPager.getCurrentItem() == 0) {
Log.d(TAG, "!!!In PhotoGalleryActivity user pressed BACK Button on 1st Image");
super.onBackPressed();
} else {
Log.d(TAG, "!!!In PhotoGalleryActivity user pressed BACK Button to see previous photo");
mPager.setCurrentItem(mPager.getCurrentItem() - 1);
}
}
/**
* A simple pager adapter that represents 5 ScreenSlidePageFragment objects, in
* sequence.
*/
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
Log.d(TAG, "!!!In PhotoGalleryActivity get next item position");
return new GallerySliderFragment();
}
@Override
public int getCount() {
Log.d(TAG, "!!!In PhotoGalleryActivity get count: " + NUM_PAGES);
return NUM_PAGES;
}
}
}