Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查看寻呼机未被称为Android屏幕幻灯片的活动_Android_Android Fragments_Android Activity_Android Viewpager - Fatal编程技术网

查看寻呼机未被称为Android屏幕幻灯片的活动

查看寻呼机未被称为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

最近从Android开发开始,我正在创建一个屏幕幻灯片,在选择图片库(网格视图)的一部分后会出现。我遵循了Android教程,但是我遇到的问题是ViewPager似乎不起作用(活动中的日志没有打印出来),我在新片段中看到的唯一内容是一些文本

下面我已经包括了代码,任何帮助都将不胜感激

这是从gallery进行初始调用以显示滑块GoToGallerySlaider()的地方

PhotoGalleryFragment.java

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;
        }
    }

}