未找到片段PostFragment的id为0x7f080035(com.androidjetpackph:id/container)的视图

未找到片段PostFragment的id为0x7f080035(com.androidjetpackph:id/container)的视图,android,android-layout,android-fragments,android-xml,Android,Android Layout,Android Fragments,Android Xml,我想为所有活动创建一个契约,出于这个原因,我正在创建一个基本活动,但是由于某些原因,出现了关于R.id.container的错误 我正在使用以下代码执行基本活动: abstract class BaseActivity : AppCompatActivity() { @LayoutRes abstract fun layoutToInflate(): Int abstract fun doOnCreated() open fun initialFragme

我想为所有活动创建一个契约,出于这个原因,我正在创建一个基本活动,但是由于某些原因,出现了关于R.id.container的错误

我正在使用以下代码执行基本活动:

abstract class BaseActivity : AppCompatActivity() {


    @LayoutRes
    abstract fun layoutToInflate(): Int

    abstract fun doOnCreated()

    open fun initialFragment(): Fragment? = null

    abstract fun defineInitialFragment()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        doOnCreated()
    }

}
这是我的主要活动

class MainActivity : BaseActivity() {

    override fun layoutToInflate() = R.layout.activity_main

    override fun doOnCreated() {
        defineInitialFragment()
    }

    override fun initialFragment() = PostFragment.newInstance()

    override fun defineInitialFragment() {
        val initialFragment = initialFragment() ?: return
        supportFragmentManager
                .beginTransaction()
                .replace(R.id.container, initialFragment)
                .commitNow()
    }
这是我的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">


    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".ui.main.MainActivity" />
</layout>

在您发布的代码中,这是您的基础
onCreate()

这是你的子类:

在这两个地方,您实际上都没有设置活动的内容视图。您必须在某个地方调用
setContentView(layouttonflate())
,可能在基本活动的
onCreate()中:


对就这样!!还有一个不相关的问题,dagger真的值得使用吗?我应该自己注射吗?作为移动消费的后端语言,你推荐nodejs吗?谢谢你,很抱歉问了我两个问题
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    doOnCreated()
}
override fun doOnCreated() {
    defineInitialFragment()
}
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(layoutToInflate())
    doOnCreated()
}