相关疑难解决方法(0)

Fragment 上的 Lateinit 属性未初始化

我已经编写了我的第一个 Kotlin 和 Android 应用程序,但我在这个应用程序上遇到了很多崩溃。

所有这些都与关键字相关lateinit

我遇到如下崩溃:

Caused by e.y: lateinit property coordinator has not been initialized

和:

Fatal Exception: java.lang.RuntimeException
Unable to start activity ComponentInfo{app.myapp/mypackage.myapp.Controllers.MainActivity}: e.y: lateinit property coordinator has not been initialized

Caused by e.y
lateinit property coordinator has not been initialized
myapp.com.myapp.Controllers.Fragments.Parents.MyParentFragment.getCoordinator


Run Code Online (Sandbox Code Playgroud)

例如,最后一个跟踪与我在片段上设置的变量相关,如下所示:

        fun newInstance(mainObject: MyObject, anotherObject: AnotherObject, coordinator: FragmentCoordinator): MyFragment {
            val fragment = MyFragment()
            fragment.mainObject = mainObject
            fragment.anotherObject = ticket
            fragment.coordinator = coordinator
            return fragment
        }
Run Code Online (Sandbox Code Playgroud)

片段侧面看起来像:

class MyFragment: MyParentFragment() {

     companion object …
Run Code Online (Sandbox Code Playgroud)

android fragment android-fragments android-activity kotlin

6
推荐指数
1
解决办法
4950
查看次数

如何在MainActivity中获取ViewPager创建的fragment的元素?

我有几个用ViewPager. 我在 MainActivity 的方法中addOnPageChangeListener添加了一个,它给出了所选片段的位置。ViewPageronCreate

尽管我通过声明 a 来防止片段自行销毁setOffscreenPageLimit,但我仍然没有弄清楚如何从 MainActivity 访问片段,因为简单地使用findViewById会返回空对象异常。

我想做的事:

我想访问片段的元素,例如布局和滚动视图,OnPageListenerViewPager

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
    public void onPageSelected(int i) {

        if(i == 0) {
            // Do something with the first fragment.
        } else if(i == 1) {
            // Do something with the second fragment.
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

使用ViewPagerFragmentPagerAdapter

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager

1
推荐指数
1
解决办法
1601
查看次数