【发布时间】:2016-04-13 13:39:28
【问题描述】:
我的 MainActivity 中有一个 ViewPager。其中的每一页都是一个片段。因此,每次我向右或向左滑动时,都会创建一个新的片段实例,并相应地更新片段视图。
我还有两个按钮:LEFT 和 RIGHT 用于导航。这些按钮在 Fragment 中,而不是在 Activity 中。用户可以滑动或按下相关按钮在页面之间导航。
问题来了:由于我正在通过 MainActivity 更改视图,如何检测 Activity 中这些按钮的 onClick 事件以更新片段?
这是PagerAdapter 类(从各处删除了所有不相关的代码):
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// logic part for the views.
return PlaceholderFragment.newInstance(sectionNumber, questionStatus, questionOrder, showNext, showPrevious);
}
这是PlaceHolderFragment 类:
public class PlaceholderFragment extends Fragment{
//some global variables
public static PlaceholderFragment newInstance(int sectionNumber, int questionStatus, String questionOrder, boolean showNext, boolean showPrevious) {
PlaceholderFragment fragment = new PlaceholderFragment();
//setting up the arguments
fragment.setArguments(args);
return fragment;
}
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.explanation_fragment, container, false);
//code for filling up all the views
RightButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//can I do something here?
}
});
return rootView;
}
}
更多信息: 我必须将导航按钮保留在片段本身而不是活动中。
【问题讨论】:
-
将按钮附加到 mainactivity 布局。
-
在你的活动中添加按钮而不是在片段中。分享你的活动 xml,我会告诉你如何添加
-
@MustanserIqbal,是的,这是一个选项,但我必须将按钮保留在片段本身中。还有其他解决方法吗?
-
编写一个接口并在您的 mainactivity 和片段的 onClick 中实现该接口,为活动实现的方法提供回调。
标签: android android-fragments android-viewpager