如何在不使用kotlin中的Asynctask的情况下调用Api的百分比进度?

目的 :我使用retrofit库进行api调用时使用progress dialog 。 为此,我使用下面的代码: private var progressDialog: ProgressDialog? = null @JvmStatic fun showProgress(message: String?, context: Context?, cancellable: Boolean) { if (context == null) return if (checkProgressOpen()) return progressDialog = ProgressDialog(context) (progressDialog as ProgressDialog).setProgressStyle(ProgressDialog.STYLE_SPINNER) (progressDialog as ProgressDialog).setMessage(message ?: “Please wait…”) (progressDialog as ProgressDialog).setCancelable(cancellable) try { (progressDialog as ProgressDialog).show() } catch (e: Exception) { // catch […]

无法使用Kotlin在我的Android应用程序中为全局variables创建一个类

我试图在我的应用程序中定义一个全局variables它是说,属性必须定义或抽象。 我看了,并试图复制一些soltuions,但似乎无法得到它的工作 任何意见赞赏。 package com.example.app.thisweekintown import android.app.Application class GlobalVars:Application() { var isConnected:Boolean }

如何使用kotlin单击listView项目中的imageButton后才能获取DB ID

我有一个customAdapter类和一个listView。 我做了3个textview和一个imageButton的single_row布局。 现在我的问题是我怎么能得到DB ID字段,只能从单击imageButton并忽略整个行上的点击? 我知道我可以得到的ID: mListView.onItemClickListener = AdapterView.OnItemClickListener { adapterView, view, position, id -> view.delete.setOnClickListener(){ Toast.makeText(context,””+id,Toast.LENGTH_SHORT).show() } 但是这只有当我点击整个行时才有效。 我在imageButton节点中的xml和android:focusable=”false” focusable android:focusable=”false”的根目录中尝试了android:descendantFocusability=”blocksDescendants” ,并且在整个行被识别时imageButton无法识别。 只有当我使用button.onClickListener()…点击被识别。 但这样我不知道如何得到身份证。 我的适配器类代码: class MyAdapter(activity: Activity, context: Context, cursor: Cursor) : CursorAdapter(context, cursor, true) { var inflater: LayoutInflater lateinit var mListView: ListView init { this.inflater = LayoutInflater.from(context) mListView = activity.listView } override fun […]

如何创建BLE设备的模拟器通过蓝牙进行通信?

我正在创建一个应用程序,我需要通过蓝牙传递数据,但是我没有BLE设备。 我想使用常见的BLE特性来通过蓝牙传递数据。 有没有可用的模拟器? 我在哪里可以测试我的申请? 我正在Kotlin开发这个应用程序,请给我一个相应的解决方案。

RxKotlin(RxJava2)timeout()不会抛出TimeoutException

我试图得到一个使用两个不同超时值的示例工作。 第一个排放量的初始值较大,随后的所有排放量则为较短的值。 这个例子是从RxJava v1x的Java转换为Kotlin,虽然我试图这是v2x(不知道这是否有任何区别)。 问题是第一个事件的超时不会引发TimeoutException 。 设置的值低于500毫秒,我期待一个堆栈跟踪打印,但我得到的输出,如果没有发生超时(后续排放超时设置为40毫秒导致堆栈跟踪如预期)。 以下示例阻止成功初始超时有什么问题? fun nextSolarEclipse(after: LocalDate): Observable { return Observable .just( LocalDate.of(2016, Month.MARCH, 9), LocalDate.of(2016, Month.SEPTEMBER, 1), LocalDate.of(2017, Month.FEBRUARY, 26), LocalDate.of(2017, Month.AUGUST, 21), LocalDate.of(2018, Month.FEBRUARY, 15), LocalDate.of(2018, Month.JULY, 13), LocalDate.of(2018, Month.AUGUST, 11), LocalDate.of(2019, Month.JANUARY, 6), LocalDate.of(2019, Month.JULY, 2), LocalDate.of(2019, Month.DECEMBER, 26) ) .skipWhile { date -> !date.isAfter(after) } .zipWith( Observable.interval(500, […]

键盘隐藏BottomSheetDialogFragment

键盘下方有更多的字段。 这发生在我更新支持库时。 我知道这是Kotlin,但它看起来几乎与Java相同。 我该如何解决这个问题? 这是它的样子: 我的代码: class ProjectsEditBottomSheetFragment(val privateID: String, val publicID: String) : BottomSheetDialogFragment() { private val mBottomSheetBehaviorCallback = object : BottomSheetBehavior.BottomSheetCallback() { override fun onStateChanged(bottomSheet: View, newState: Int) { if (newState == BottomSheetBehavior.STATE_HIDDEN) { dismiss() } } override fun onSlide(bottomSheet: View, slideOffset: Float) { if (slideOffset < -0.15f) { dismiss() } } } […]

从Android Studio中的播放图标开始检测测试,将它们作为JVM上的JUnit运行

当我尝试在Android Studio中通过单击文件左侧的装订线中的播放图标来运行检测测试时,它会创建错误的运行配置。 我正在使用Android Studio 3.0.1。 这似乎只发生在测试写在Kotlin。

在Ktor中测试发布请求

Ktor(kotlin web框架)有一个很棒的可测试模式,可以在unit testing中包装http请求。 他们举了一个很好的例子来说明如何在这里测试一个GET端点,但是我在使用http POST时遇到了麻烦。 我试过,但后参数似乎并没有被添加到请求: @Test fun testSomePostThing() = withTestApplication(Application::myModule) { with(handleRequest(HttpMethod.Post, “/api/v2/processing”) { addHeader(“content-type”, “application/x-www-form-urlencoded”) addHeader(“Accept”, “application/json”) body = “param1=cool7&param2=awesome4” }) { assertEquals(HttpStatusCode.OK, response.status()) val resp = mapper.readValue(response.content ?: “”) assertEquals(TriggerResponse(“cool7”, “awesome4”, true), resp) } } 有人有主意吗?

房间持久性@Relation在Java中工作,但不在Kolin中

基于我以前的问题( Android持久性房间:“无法弄清楚如何从光标读取这个字段” ),我得到了工作,感谢反馈,我在Kolin实现了同样的例子(见下面的代码)。 我不得不做一些小的改变,如现在传递给查询的参数,这些参数必须作为“p0”,“p1”等传递。现在在Kotlin中,我得到以下有关UserWithPets类的错误: 错误:无法弄清楚如何从光标读取此字段。 e:private java.util.List宠物; @Dao interface UserDAO { @get:Query(“SELECT * FROM user”) val all: LiveData<List> @Insert fun insertUser(user: User) //single one @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertUsers(vararg users: User) @Query(“SELECT * FROM User”) fun loadUsersWithPets(): LiveData<List> } @Entity class Pet( var name: String?, var ownerId: Int,@PrimaryKey(autoGenerate = true)var id:Int) @Dao interface PetDAO { […]

Scala在同一个对象上执行多个操作而不重复它的名字

在kotlin中,有一个可以用来实现以下function的接收器function: fun alphabet() = with(StringBuilder()) { for (letter in ‘A’..’Z’) { append(letter) } append(“\nNow I know the alphabet!”) toString() } 所以你不必重复StringBuilder对象。 我想知道在Scala中做什么的语法?