使用ViewPager测试Android应用程序

时间:2013-05-20 22:07:45

标签: android android-viewpager

我创建了一个Activity,其中包含一个n个片段的ViewPager。我还添加了Previous,Next和Finish按钮。片段可以是多选ListViews,也可以只是一种答案类型。

当用户点击完成时,我应该如何从每个片段中获取数据?我应该从ViewPager获得onPageSelected事件的每个答案吗?

1 个答案:

答案 0 :(得分:1)

片段与包含片段的活动之间的通信是通过接口完成的。

片段应该公开一个接口监听器,活动应该实现它,并在事件发生后通过片段得到通知。

您可以使用我的示例,也可以更改活动未实现,但您可以匿名创建监听器(就像您多次点击监听器上的按钮一样)。

class MyFragment {

    // Container Activity must implement this interface
    public interface OnNextPageListener {
        public void onNextPageSelected(String DataString);
    }

    // define listener in fragment
    OnNextPageListener mNextPageListener;

.... class code

  @Override
    public void onAttach(Activity activity) {
      try {
            mNextPageListener = (OnNextPageListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement OnNextPageListener");
        }
.... class code...

   ...button press onclick listener method...
   mNextPageListener.onNextPageSelected("My Name is Slim Shaddy");

}


class MainActivity extends Activity implements MyFragment.OnNextPageListener 
    public void onNextPageSelected(String StringData) {
    }
    ...

在此处阅读更多内容http://developer.android.com/training/basics/fragments/communicating.html

无论哪种方式,当有人按下片段中的按钮或挂钩ViewPager.OnPageChangeListener,开始在onPageScrollStateChanged上保存数据并在OnPageSelected上完成它时,我建议你这样做,这样你就可以确保你拥有数据了不再可用。