Tag: android

Kotlin接口中的伴随对象

我正在试图做一个接口Parcelable,因此我需要一个这样的接口 interface AB : Parcelable { companion object { val CREATOR : Parcelable.Creator<AB> } } 和我的两个类A和B看起来像 data class A (…): Parcelable{ … companion object { val CREATOR : Parcelable.Creator<AB> = object : Parcelable.Creator<AB> { override fun newArray(size: Int): Array<AB?> { return arrayOfNulls(size) } override fun createFromParcel(parcel: Parcel): AB { return A(parcel) } } } 我正努力在kotlin中实现这样一个接口。 […]

接口与函数调用的Kotlin性能

在Kotlin中,因为我们可以使用函数作为变量,所以我倾向于用这样的函数调用替换接口: class A { private var listener: AA? = null var callThis: (() -> Unit) ? = null) fun somethingHere() { callThis?.invoke() listener?.callThis2() } fun attachListener(listener: AA) { this.listener = listener } interface AA { fun callThis2() } } class B { init { val objectA = A() objectA.callThis = {} objectA.attachListener(object : A.AA { […]

FragmentTransaction不会在Kotlin Android项目中编译

在用Android学习Kotlin的过程中,编译失败和一般无用的错误文本已经让我难住了。 错误文字说明如下: 所提供的参数都不能调用以下函数。 在android.app.FragmentTransaction中定义的add(Fragment !, String!)add(Int,Fragment!)定义在android.app.FragmentTransaction 在这两个例子中的片段! 文字以红色突出显示。 我知道Kotlin是指带有!的Java类,但我似乎无法理解为什么它不满意我提供输入的方式。 任何有识之士将不胜感激。 fun displayEditRoutine(){ //Set our variables var ft = fragmentManager.beginTransaction() //Basic "newInstance" constructor to avoid omitting necessary variables var frag = EditRoutine.newInstance(mRoutineID,this) //Here is where error occurs ft.add(R.id.are_container, frag).commit() } 正在引用的EditRoutine类: class EditRoutine : Fragment() { //Variables private var mRoutineID: String? = null private var mListener: […]

Kotlin android数据库:不能将java.lang.String强制转换为android.database.Cursor

我正在开发一个简单的笔记应用程序在Android的Kotlin使用一个简单的SQLite数据库。 我已经用java编写了它,但是现在我在Kotlin中遇到了一些问题,特别是在一行代码中。 这是工作的 java代码,当我在列表视图上点击它时,我会记下这个ID。 itemCursor = (Cursor) activity.listView.getItemAtPosition(position); noteID = itemCursor.getInt(itemCursor.getColumnIndex(DBHelper.NOTES_COLUMN_ID)); itemCursor = helper.getNote(noteID); 那么这应该是Kotlin代码: var itemCursor: Cursor = activity.listView.getItemAtPosition(position) as Cursor **(error here on this line, look below for it)** var noteID: Int = itemCursor.getInt(itemCursor.getColumnIndex(COLUMN_ID)) itemCursor = helper.getNote(noteID) java.lang.ClassCastException:java.lang.String不能转换为android.database.Cursor ListView适配器: list_titles = helper.getAllTitles() lv_adapter = ArrayAdapter(activity, android.R.layout.simple_list_item_1, list_titles) v.listview.adapter = lv_adapter getAllTitles好玩: fun getAllTitles(): […]

Android工作室代码覆盖不显示任何Kotlin类

我有2个基于Kotlin的AS项目。 一个正常工作,另一个没有。 两者具有相同的结构和gradle配置。 我使用Kotlin 1.1.4-2和AS 3.0b2。 问题是,当我运行代码覆盖时,我测试的类甚至不在覆盖报告中显示。 我看到的唯一的东西是R.java和BuildConfig.java,但没有找到我的源文件。 所有源文件都是基于Kotlin的。 我正在使用Spek进行单元测试。 与我的其他功能项目相同的设置和版本。 我尝试使用JaCoCo和Jetbrains代码覆盖率,都没有工作。 我很抱歉,我还无法嵌入图片。 这是问题: 覆盖率报告 这是我的项目结构: 文件结构 这里是我的gradle android块: compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName libraryVersion } buildTypes { debug { testCoverageEnabled = true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 和我的依赖: implementation fileTree(dir: 'libs', […]

Kotlin – 在SharedPreferences上坚持MutableList

我一直在玩Android的Kotlin。 我有一个可变列表,这是一个对象列表。 现在我想坚持下去,但我不知道最好的办法是什么。 我认为这可以用SharedPreferences来完成,但我不知道如何解析对象到一个普通的格式或东西。 这些对象实际上是来自一个数据类,也许是有用的。 谢谢

使用Project Astoria转换Kotlin Android应用程序

我将使用Kotlin语言而不是Java来开发Android应用程序。 我能稍后将这个应用程序转换为使用Project Astoria在Windows 10设备上执行吗?

Kotlin – 为WebView定义全局变量

我试图定义一个全局的变量是类WebView。 在Android Java中,通过编写它可以轻松完成 用于全局变量的Java < ClassName > < variableName > 但是在科特林,我正面临着它的声明问题。 class MainActivity : AppCompatActivity() { var mywebview : WebView //<- This shows Property must be initialized or be abstract override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } override fun onStart() { super.onStart() mywebview = findViewById(R.id.webViewGyrix) as WebView mywebview.setWebViewClient(object : WebViewClient() { override fun shouldOverrideUrlLoading(view: […]

在Kotlin和Anko中实现SQLite

我创建了如下的应用程序数据库。 我想现在插入记录和检索,因为这个链接说https://antonioleiva.com/databases-anko-kotlin/使用database.use import android.database.sqlite.SQLiteDatabase import org.jetbrains.anko.db.* class AppDbHelpler : ManagedSQLiteOpenHelper(AppApplication.instance(), AppDbHelpler.DB_NAME, null, AppDbHelpler.DB_VERSION) { companion object { val DB_NAME = "person.db" val DB_VERSION = 1 val instance by lazy { AppDbHelpler() } } override fun onCreate(db: SQLiteDatabase?) { db!!.createTable(PersonTable.Name, true, Pair(PersonTable.ID, INTEGER + PRIMARY_KEY + AUTOINCREMENT), Pair(PersonTable.PersonName, TEXT), Pair(PersonTable.Domain, TEXT), Pair(PersonTable.MobileNumber, REAL)) } override fun […]

我想将我的kotlin版本添加到gradel项目中

当我在kotlin中创建一个新的gradel项目并在我的项目级别gradel中添加maven {url“ https://dl.bintary.com/kotlin/kotlin-eap-1.1 ”}这个url并下载zip文件后,我是选择工具工具窗口-gradel …并试图添加一个zip文件,然后它不添加…这么简单,我只是想添加我的kotlin版本到该gradel窗口,以便我能够运行该gradle项目请记住我对这个kotlin语言很新,所以我不知道这个。