gpt4 book ai didi

java - 如何从 Android 中的父 Activity 调用 Fragment 方法

转载 作者:行者123 更新时间:2023-12-02 12:12:22 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个方法 Fragment类(class)。我想使用父 Activity 调用此方法.

fragment 代码:

public class SampleFragment extends Fragment {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_sample, null);

return v;
}

public void getToast(){
Toast.makeText(getActivity(), "Test", Toast.LENGTH_SHORT).show();
}
}

我想使用此代码来初始化 Activity 中的 fragment :

private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFrag(new SampleFragment (), context.getResources().getString(R.string.info));
viewPager.setOffscreenPageLimit(1);
viewPager.setAdapter(adapter);
}

private static class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}

@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}

@Override
public int getCount() {
return mFragmentList.size();
}

public void addFrag(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}

如何调用getToast() Activity中的方法?

我是业余爱好者,请帮我解决上面的代码吗?请我的 friend 们。谢谢

最佳答案

最简单的方法是在您的 Activity 中本地存储对 fragment 的引用,并对其调用 getToast:

SampleFragment myFragment; // declared in your activity class

// This is small change in your setupViewPager
myFragment = new SampleFragment ();
adapter.addFrag(myFragment, context.getResources().getString(R.string.info));

//later on when you want to call getToast:
myFragment.getToast();

您还可以跳过将 SampleFragment 存储为 Activity 的数据成员,并在需要时直接从 FragmentManager 检索其引用。

关于java - 如何从 Android 中的父 Activity 调用 Fragment 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46442947/

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