kotlin'onCreate'没有任何内容

Roo*_*Kit 24 android kotlin

我在我的公共模块BaseActivity.kt和BaseFragment.kt中使用组件开发.当其他模块继承它们时会发生以下问题

> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\MainActivity.kt
> Error:(7, 24) Unresolved reference: base 
> Error:(9, 22) Unresolved reference: BaseActivity 
> Error:(21, 5) 'onCreate' overrides nothing
> Error:(17, 5) 'getLayoutRes' overrides nothing 
> Error:(22, 15) Unresolved reference: onCreate 
> Error:(27, 22) Unresolved reference: findViewById 
> Error:(42, 34) Unresolved reference: supportFragmentManager
> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\TimelineFragment.kt
> Error:(7, 24) Unresolved reference: base 
> Error:(10, 5) 'getLayoutRes' overrides nothing 
> Error:(9, 26) Unresolved reference: BaseFragment
> Error:(14, 5) 'onCreateView' overrides nothing 
> Error:(15, 22) Unresolved reference: onCreateView
Run Code Online (Sandbox Code Playgroud)

BaseActivity.kt:

abstract class BaseActivity : AppCompatActivity() {  
    init {  
        AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)  
    }  
    abstract fun getLayoutRes(): Int  
    override fun onCreate(savedInstanceState: Bundle?) {  
        super.onCreate(savedInstanceState)  
        setContentView(getLayoutRes())  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

MainActivity.kt

class MainActivity : BaseActivity() {

    private lateinit var mBottomNav: BottomNavigationView

    private var mFragment1 = TimelineFragment() as Fragment
    private var mFragment2 = TimelineFragment() as Fragment
    private var mFragment3 = TimelineFragment() as Fragment

    override fun getLayoutRes(): Int {
        return R.layout.activity_main
    }

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

    }
}
Run Code Online (Sandbox Code Playgroud)

Had*_*adi 66

似乎有些功能在上次更新中已经改变,只需?从中移除' 'Bundle

像这样:

override fun onCreate(savedInstanceState: Bundle) {
    super.onCreate(savedInstanceState)
}
Run Code Online (Sandbox Code Playgroud)

  • 我使用的是Android 3.5,OP遇到了相同的问题,但onCreateDialog()而不是onCreate()。我正在使用https://developer.android.com/guide/topics/ui/dialogs.html#kotlin中没有的示例?在Bundle之后,但添加后将其修复。非常感谢您的建议! (2认同)

Luc*_*rra 48

它也可能发生在Fragment类中:我发现该方法存在同样的问题onCreateView; 要避免这种情况,只需?LayoutInflater参数中删除,

像这样:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
Run Code Online (Sandbox Code Playgroud)


Kis*_*ngk 7

我必须添加“?” 使用appcompat-v7:27.1.1时

implementation "com.android.support:appcompat-v7:27.1.1
Run Code Online (Sandbox Code Playgroud)

override fun onCreate(savedInstanceState : Bundle?){
    super.onCreate(savedInstanceState)
}
Run Code Online (Sandbox Code Playgroud)