gpt4 book ai didi

java - 查看寻呼机 - 使用静态变量以编程方式滑动到下一页

转载 作者:太空狗 更新时间:2023-10-29 16:33:40 25 4
gpt4 key购买 nike

我想在我的 ViewPager 中以编程方式制作幻灯片。

我的问题是,要滑动的事件是由放置在 ViewPager 持有的 fragment 内的按钮调用的。

我知道代码:

viewpager.setCurrentItem(int index)

现在我的想法是将 ViewPager 变量设为公共(public)静态,以便从子 fragment 访问它。但是静态变量不能从子 fragment 访问。

我怎样才能通过点击放置在页面内部的按钮来制作幻灯片?

最佳答案

您可以使用接口(interface)通过您的Activity(或托管在说 Activity) 而不会暴露任何字段。

ViewPager Fragment 中,创建一个 interface:

public class FragmentInViewPager extends Fragment {

private Callback mCallback;

public interface Callback {
void setViewPagerCurrentPage(int page);
}

@Override
public void onAttach(Activity activity) {
mCallback = (Callback) activity;
//NB: The above will throw ClassCastException if your Activity
//Does not implement FragmentInViewPager.Callback
}

//To call it...
int newPageNumber = 27;
mCallback.setViewPagerCurrentPage(newPageNumber);

让您的 Activity 实现 interface,并从那里直接与您的 ViewPager 交互(如果它是您的 中的变量Activity) 或在您的一个 fragment 中访问它:

public class MainActivity extends AppCompatActivity implements FragmentInViewPager.Callback {

private ViewPager mViewPager;

//...
@Override
public void setViewPagerCurrentPage(int page) {
mViewPager.setCurrentItem(page);
//Or...if it is inside another Fragment...
ViewPagerFragment frag = (ViewPagerFragment) getFragmentManager().findFragmentByTag("view_pager_fragment_tag");
if (frag != null) frag.getViewPager().setCurrentItem(page);
}

关于java - 查看寻呼机 - 使用静态变量以编程方式滑动到下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com