Android 在整个项目中使用一个BaseActivity时,不会显示任何内容
我已经为所有活动创建了一个BaseActivity,用于为所有活动设置标题和其他内容,但在启动应用程序时没有显示任何内容 以下是基本活动的代码:Android 在整个项目中使用一个BaseActivity时,不会显示任何内容,android,android-activity,Android,Android Activity,我已经为所有活动创建了一个BaseActivity,用于为所有活动设置标题和其他内容,但在启动应用程序时没有显示任何内容 以下是基本活动的代码: abstract class BaseActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onCre
abstract class BaseActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState)
overridePendingTransition(0, 0)
setContentView(getContentView())
onViewReady(savedInstanceState, intent)
}
abstract fun getContentView(): Int
abstract fun onViewReady(savedInstanceState: Bundle?, intent: Intent?)
}
class MainActivity : BaseActivity() {
override fun getContentView(): Int = R.layout.activity_main
override fun onViewReady(savedInstanceState: Bundle?, intent: Intent?) {
}
}
以下是主要活动:
abstract class BaseActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState)
overridePendingTransition(0, 0)
setContentView(getContentView())
onViewReady(savedInstanceState, intent)
}
abstract fun getContentView(): Int
abstract fun onViewReady(savedInstanceState: Bundle?, intent: Intent?)
}
class MainActivity : BaseActivity() {
override fun getContentView(): Int = R.layout.activity_main
override fun onViewReady(savedInstanceState: Bundle?, intent: Intent?) {
}
}
清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unigem">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".gem.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我做错了什么 因为在
BaseActivity
中重写错误的onCreate()
,即onCreate(savedInstanceState:Bundle?,persistentState:PersistableBundle?
您需要覆盖onCreate(savedInstanceState:Bundle?)而不是上面版本的onCreate()
,如下所示
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
overridePendingTransition(0, 0)
setContentView(getContentView())
onViewReady(savedInstanceState, intent)
}
如果您对onCreate()
(您重写的方法)的第二个实现感到好奇,请阅读更多信息,因为在BaseActivity
中,您重写了错误的onCreate()
,即onCreate(savedInstanceState:Bundle?,persistentState:PersistableBundle?
您需要覆盖onCreate(savedInstanceState:Bundle?)而不是上面版本的onCreate()
,如下所示
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
overridePendingTransition(0, 0)
setContentView(getContentView())
onViewReady(savedInstanceState, intent)
}
如果您对onCreate()
(您覆盖的方法)的第二个实现感兴趣,请阅读