Tag: android

静态字段在kotlin中

我是Kotlin的新手,并试图将我的Android活动转换为Kotlin,但是我不知道如何将字段声明为静态。 我想转换下面的代码… public class MainActivity extends AppCompatActivity { static String TAG = "MainActicity"; @Override protected void onCreate(Bundle savedInstanceState) { …. } …. } 任何人都可以帮忙吗? 提前致谢!

Android Studio 3 / Kotlin代码覆盖

我的Android应用程序是多模块项目: include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders' 我正在使用Junit / Mockito进行测试,并且只有为kotlin android模块生成代码覆盖的问题。 经过测试的行对于android studio是可见的。 在ui.viewmodel包中测试类: 但是,对于纯粹的kotlin (例如,域,演示)测试覆盖工作正常: 我正在使用Android Studio 3.0 Canary 8您可以在github上查看我的build.gradle文件: 的build.gradle dependencies.gradle application.build.gradle presentation.build.gradle Android应用程序模块中的示例测试: MostPopularViewModelTest 纯kotlin模块中的示例测试: MostPopularPresenterTest 有人可以帮我解决我的问题吗? 我尝试通过Jacoco生成代码覆盖,但它也没有显示代码覆盖率。

Kotlin通用边界

我正试图将我的MVP解决方案从JAVA移植到Kotlin,而我在泛型方面遇到了一个很大的问题。 这是我的JAVA类的样子: public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity implements BaseView public abstract class BasePresenter<V extends BaseView> public interface BaseView 并移植到Kotlin: abstract class BaseActivity<P : BasePresenter<BaseView>> : AppCompatActivity(), BaseView abstract class BasePresenter<V : BaseView> interface BaseView 而当我试图使用 class MainActivity() : MainView, BaseActivity<MainPresenter>() 我得到“类型参数不在其范围内,预期: BasePresenter , 找到MainPresenter ”

GridView.LayoutParams在Kotlin中不存在?

我想使用GridView并根据文档 ,在适配器中,我可以在适配器中使用此行: imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 那么,把它转换成Kotlin,它说: 它在Java中工作,但不在Kotlin中。 那么,为什么呢? 我怎样才能在Kotlin中使用GridView.LayoutParams ?

在Kotlin的意图

所以,我知道在Java中我们使用这个来启动新的Activity Intent intent = new Intent(this, SomeActivity.class); startActiviry(intent); 但是我正在使用Kotlin写一个项目,所以在Kotlin就像 val intent = Intent(this,SomeActivity::class.java) startActivity(intent) 但它与问题崩溃 FATAL EXCEPTION: main Process: com.pashabred.passlin, PID: 15243 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pashabred.passlin/com.pashabred.passlin.Enterring}: kotlin.KotlinNullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: kotlin.KotlinNullPointerException […]

kotlin和ArgumentCaptor – IllegalStateException

我有一个通过ArgumentCaptor捕获类参数的问题。 我的测试类看起来像这样: @RunWith(RobolectricGradleTestRunner::class) @Config(sdk = intArrayOf(21), constants = BuildConfig::class) class MyViewModelTest { @Mock lateinit var activityHandlerMock: IActivityHandler; @Captor lateinit var classCaptor: ArgumentCaptor<Class<BaseActivity>> @Captor lateinit var booleanCaptor: ArgumentCaptor<Boolean> private var objectUnderTest: MyViewModel? = null @Before fun setUp() { initMocks(this) … objectUnderTest = MyViewModel(…) } @Test fun thatNavigatesToAddListScreenOnAddClicked(){ //given //when objectUnderTest?.addNewList() //then verify(activityHandlerMock).navigateTo(classCaptor.capture(), booleanCaptor.capture()) var clazz = […]

Kotlin和Android Databinding

Updated 21.06.2015 我想在同一个项目中尝试kotlin和android数据绑定。 但是,当我添加到kotlin gradle插件依赖我不能建立一个甚至一个空的项目了错误: 无法生成视图绑定器java.lang.NoClassDefFoundError:kotlin / jvm / internal / ExtensionFunctionImpl buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0-beta3' classpath "com.android.databinding:dataBinder:1.0-rc0" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:0.12.613" } } 任何workaroud使它一起工作?

Kotlin IllegalStateException:在类路径中找不到资源:kotlin / .kotlin_string_table

我试图在我的Android应用程序中使用Kotlin,并且无法调用扩展功能。 该应用程序立即崩溃与以下堆栈跟踪: 04-23 13:31:22.415 32606-32606/com.example.kotlin.test E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.kotlin.test, PID: 32606 java.lang.ExceptionInInitializerError at org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData$Companion.create(RuntimeModuleData.kt:34) at kotlin.reflect.jvm.internal.InternalPackage$moduleByClassLoader$cff17278.getOrCreateModule(moduleByClassLoader.kt:54) at kotlin.reflect.jvm.internal.KClassImpl$descriptor$1.invoke(KClassImpl.kt:31) at kotlin.reflect.jvm.internal.KClassImpl$descriptor$1.invoke(KClassImpl.kt:26) at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.get(ReflectProperties.java:84) at kotlin.reflect.jvm.internal.KClassImpl.getDescriptor(KClassImpl.kt) at kotlin.reflect.jvm.internal.KClassImpl.getScope(KClassImpl.kt:43) at kotlin.reflect.jvm.internal.KClassImpl.getProperties(KClassImpl.kt:84) at kotlin.reflect.jvm.internal.KClassImpl.getProperties(KClassImpl.kt:72) at kotlin.reflect.ReflectPackage$KClassExtensions$6beb0f9b.getDeclaredProperties(KClassExtensions.kt:25) at kotlin.reflect.ReflectPackage.getDeclaredProperties(KClassExtensions.kt:1) at com.example.test.kotlin.api.model.DatabaseObject$$TImpl.deflate(DatabaseObject.kt:40) at com.example.test.kotlin.api.model.impl.Model.deflate(Model.kt) at com.example.test.kotlin.api.model.impl.Model.<init>(Model.kt:28) at com.example.test.kotlin.api.model.impl.TestModel.<init>(TestModel.kt:23) at com.example.app.TestModelIndexFragment.onCreate(TestModelIndexFragment.java:122) at android.support.v4.app.Fragment.performCreate(Fragment.java:1763) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:915) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) at […]

ArrayAdapter使用Kotlin android

对不起我的英语不好。 我学习kotlin,现在我需要写ArrayAdapter,但我有一些错误,当尝试做这个convertView = vi.inflate(resource, null) kotlin说我Val cannot be reassigned 。 在网站kotline我转换java类到kotlin类,并尝试做像这个网站。 为什么我有错,我该如何解决这个问题? open class MyAdapter(context: Context, resource: Int, list: ArrayList<MyItems>) : ArrayAdapter<MyItems>(context, resource, list) { var resource: Int var list: ArrayList<MyItems> var vi: LayoutInflater init { this.resource = resource this.list = list this.vi = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater } override fun getView(position: Int, convertView: View?, parent: […]

RealmObject的Kotlin数据类

我正在使用Kotlin和Realm编写一个数据类 data class AuthToken(val register: Boolean, val token: String, val tokenSecret: String, val user: AuthUser) 我必须将数据保存到数据库,所以我使用Realm来保存它。 但是据我们所知,如果我想把类保存到Realm中, AuthToken类必须扩展RealmObject 。 这就是问题所在,Kotlin说数据类不能扩展类。 所以我放弃了数据类,只是使用一个普通的Kotlin类作为模型,然后又出现另一个问题: Kotlin类没有getter或setter。 正如我们所知,Realm类必须将所有属性设置为private,并写getter和setter。 现在我想知道如何解决这个问题。