![](/img/trans.png)
[英]How to intent from a java class to a kotlin class in Android Studios
[英]How to implement Kotlin class from java in android?
我是Java / Kotlin新手,正在開發Android應用程序。 我試圖將以下內容實現到YourApplication.kt中,在這里找到: https ://stackoverflow.com/a/42679191/4666306
package com.tijaname.fortysix
import android.app.Activity
import android.app.Application
import android.os.Bundle
import android.util.Log.println
class YourApplication : Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(AppLifecycleTracker())
}
}
class AppLifecycleTracker : Application.ActivityLifecycleCallbacks {
private var numStarted = 0
override fun onActivityStarted(activity: Activity?) {
if (numStarted == 0) {
println("Activity has started");
}
numStarted++
}
override fun onActivityStopped(activity: Activity?) {
numStarted--
if (numStarted == 0) {
println("Activity has stopped");
}
}
}
我加了
ext.kotlin_version = '1.1.51'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
到我的gradle腳本。 我還將此添加到清單中:
<activity android:name=".YourApplication"></activity>
我試圖這樣調用kotlin腳本(從我在Java中的MainActivity):
Intent intent = new Intent(getBaseContext(), YourApplication.class);
startActivity(intent);
但是我收到以下錯誤:
類'YourApplication'不是抽象的,並且沒有實現抽象成員公共抽象樂趣onActivityResumed(p0:Activity!)...
我遵循Android-Studio的建議使其抽象,但這導致了更多錯誤。
我還嘗試按照AS的建議“實施成員”,但這會使我的應用在模擬器中崩潰。
謝謝!
您的內部類(即AppLifecycleTracker類)需要重寫一些其他方法。
import android.app.Activity
android.app.Application
import android.os.Bundle
/**
* Created by saritha high 13/2/18.
*/
class AirventApplication : Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(AppLifecycleTracker())
}
class AppLifecycleTracker : Application.ActivityLifecycleCallbacks {
private var numStarted = 0
override fun onActivityStarted(activity: Activity?) {
if (numStarted == 0) {
println("Activity has started");
}
numStarted++
}
override fun onActivityStopped(activity: Activity?) {
numStarted--
if (numStarted == 0) {
println("Activity has stopped");
}
}
override fun onActivityPaused(p0: Activity?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityResumed(p0: Activity?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityDestroyed(p0: Activity?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivitySaveInstanceState(p0: Activity?, p1: Bundle?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onActivityCreated(p0: Activity?, p1: Bundle?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
}
並在清單中聲明您的應用程序類,例如:
<application
android:name=".YourApplication"
android:icon="@mipmap/app_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".YourActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.