Tag: android

如何在Kotlin中实现一个java SAM接口?

在Java中,可以像这样编写代码: model.getObservableProduct().observe(this, new Observer<ProductEntity>() { @Override public void onChanged(@Nullable ProductEntity productEntity) { model.setProduct(productEntity); } }); 然而,试图在Kotlin中覆盖本地函数的结果是: 问题:可以重写Kotlin中的本地函数吗?

境界Kotlin不在架构中

我尝试使用Realm.io在android中存储数据我有RealmClass @RealmClass public open class Alarm : RealmObject() { @Required public open var hourOfDay: Int? = null @Required public open var minute: Int? = null @Required public open var days: BooleanArray? = null public open var name: String? = null } 并在onCreate我尝试添加一些测试数据 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mRealm = Realm.getInstance(activity); mRealm.beginTransaction() var a = […]

将Java线程转换为Kotlin

我尝试通过书“通过示例的Android游戏编程”来学习Kotlin。 现在我无法进一步创建线程。 在Java中,一个线程首先被定义为零,后来被sleep()延迟。 由于我还是一个新手,我无法根据自己的需要定制代码。 这就是我在Kotlin中找到线索的解释。 但是我不能付诸实践。 有人可以告诉我如何使用我的例子做到这一点? 我删除了线程的代码行。 public class TDView extends SurfaceView implements Runnable { //Thread related volatile boolean playing; Thread gameThread = null; //Line 29 … private void control() { try { gameThread.sleep(17); //Line 310 } catch (InterruptedException e) { //catch things here } } public void pause() { playing = false; try […]

Java / Kotlin JSON解析改进

我使用了一个API,它给了我这种类型的JSON: { "data": { "name": "Start", "pid": "1", "position": { "data": { "x": "31", "y": "330" }, "metadata": "empty" } }, "metadata": "empty" } 我已经创建了与上面的JSON具有相同结构的对象的类。 我使用Android中的GSON库,里面使用GSON来解析JSON。 我的模型类将是这样的: MResponse.class public class MResponse { @SerializedName("data") public User user; String metadata; } User.class public class User { public String name; public String pid; @SerializedName("position") public PositionData positionData; } […]

onCreate从Java转换到Kotlin后崩溃

我将我的Launcher Activity从Java转换为Kotlin,并且在onCreate()中崩溃,我不明白它为什么会崩溃。 Java的: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 科特林: override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) 调用堆栈: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.abc/com.abcAuthentication.AuthenticationActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at […]

Kotlin / anko多个异步任务

我正在寻找一种简单的方法来并行启动多个任务,并等待所有这些完成。 考虑这个C#的例子: private static void Main(string[] args) { var urlList = new[] {"http://www.microsoft.com/", "http://www.google.com/", "http://www.apple.com/" }; var result = GetHtml(urlList); } private static List<string> GetHtml(string[] urlList) { var tasks = new List<Task>(); var output = new List<string>(); foreach (var url in urlList) { var task = new Task(() => { var html = new WebClient().DownloadString(url); […]

Kotlin中的Android Parcelable:在Parcelable数据类中找不到CREATOR

随着Kotlin RC的发布,我开始编写一个应用程序来学习它,但我不知道如何让Parcelable工作。 数据类: data class Project (val reponame:String, val username:String, val language:String, val vcsUrl:String, val branches:Map<String, Branch>) : Parcelable { companion object { val CREATOR = object : Parcelable.Creator<Project> { override fun createFromParcel(`in`: Parcel): Project { return Project(`in`) } override fun newArray(size: Int): Array<Project?> { return arrayOfNulls(size) } } } protected constructor(parcelIn: Parcel) : this […]

Kotlin类的Android单元测试失败,出现“找不到符号类…”

我最近添加了Kotlin插件到我的Android应用程序的构建,现在我想在InstrumentationTestCase中测试一个Kotlin类。 IntelliJ / Android Studio在编辑器中看到类,看起来类是在启动应用程序时编译的,但是当我启动gradlew assembleTest它以“无法找到符号[类的名称]”失败。 在我的build.gradle中,我添加了kotlin文件夹作为srcDir sourceSets { main { manifest.srcFile 'src/main/AndroidManifest.xml' java.srcDirs += 'src/main/kotlin' } } 任何建议? 编辑 :这个问题是Kotlin和Retrolambda插件之间的冲突,现在已经解决了。

未解决的参考:DaggerTestComponent(Kotlin用匕首测试)

当我们使用Dagger和Kotlin时,我们需要在build.gradle依赖中使用以下内容 kapt 'com.google.dagger:dagger-compiler:2.0' compile 'com.google.dagger:dagger:2.0' provided 'org.glassfish:javax.annotation:10.0-b28' 如http://www.beyondtechnicallycorrect.com/2015/12/30/android-kotlin-dagger/所述 当我尝试使用Dagger进行测试时,按照https://labs.ribot.co.uk/fast-and-reliable-ui-tests-on-android-17c261b8220c#.o3efc5knx生成DaggerTestComponent.builder()甚至https://medium.com/@fabioCollini/android-testing-using-dagger-2-mockito-and-a-custom-junit-rule-c8487ed01b56#.hxtytfns3,Kotlin语言,但有以下错误 Error:(14, 25) Unresolved reference: DaggerTestComponent 我发现https://stackoverflow.com/a/36231516/3286489解释如何获得DaggerTestComponent生成,并尝试把下面的依赖。 androidTestApt 'com.google.dagger:dagger-compiler:2.0.1' 显然,我认为这是针对Java而不是Kotlin,所以问题依然存在。 它有一个Kotlin版本吗? 如何让我的Kotlin项目中生成的DaggerTestComponent ?

Java中的Kotlin内部类可公开显示

我正在Kotlin开发一个Android 加密库 。 我有一些在Java应用程序中公开可见的internal类。 在文件中找到这个 。 internal声明在Java中public 。 internal类的成员通过名称修改,使它更难以从Java意外使用它们,并允许根据Kotlin规则相同签名的成员不能相互看到的成员超载; 有没有办法解决这个问题?