用kotlin,subscribe

你好,Kotlin 可以参考如下代码,我这边测试是正常的

package com.ywj.tdsdemo

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import cn.leancloud.LCUser
import io.reactivex.Observer
import io.reactivex.disposables.Disposable


class TestActivity : AppCompatActivity() {
    private  val TAG: String = "TestActivity"
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test2)
        register()
    }
    private fun register(){

        val user = LCUser()

    user.username = "Tom"
    user.password = "cat!@#123"

    user.email = "tom@leancloud.rocks"
    user.mobilePhoneNumber = "+8618200008888"

    user.put("gender", "secret")

    user.signUpInBackground().subscribe(object : Observer<LCUser?> {
        override fun onSubscribe(d: Disposable) {
            Log.e(TAG, "onSubscribe: "+ d.toString() )
        }

        override fun onNext(t: LCUser) {
            Log.e(TAG, "注册成功: "+ t.toJSONString() )

        }

        override fun onError(e: Throwable) {
            Log.e(TAG, "注册失败: "+ e.message.toString() )

        }

        override fun onComplete() {

        }

    })
}
}

可以对照检查下 import 的包是否和我的一样

import 的包是一样的,你提供的代码也没问题。
只是不会写这个subscribe

如果是直接复制 Java 代码,通过 AS 转译为 Kotlin 代码可能是会存在异常,你可以试试复制后并转译后,然后将其中 的 onNext() 等其他共 4个回调方法删除,然后使用快捷方式重写下回调,这样可以避免你出现的这个异常情况

求指教,这个怎么写

是哪个方法?是你重新贴了代码吗?我这边没显示呢

//自动转化的代码
    todo.saveInBackground().subscribe(object : Observer<LCObject?> {
        fun onSubscribe(disposable: Disposable?) {}
        fun onNext(todo: LCObject) {
            // 成功保存之后,执行其他逻辑
            println("保存成功。objectId:" + todo.objectId)
        }

        fun onError(throwable: Throwable?) {
            // 异常处理
        }
        fun onComplete() {}
    })

//我不知道怎么实现的代码
user.signUpInBackground().subscribe(

    )

//我不知道怎么实现的代码

如果是指 Kotlin 语法实现逻辑,这个还得你自己多学习下 Kotlin 哦,如果是指这个 signUpInBackground() 方法的实现,可以点进去看下 SDK 中的源码

如果遇到上面类似的问题不能解决的,可以随时贴下代码,我这边可以帮你处理下

兄弟,这个对我很重要,因为leancoloud的账户里还有钱呢,要是解决不了我只能去隔壁Bmob家了

上面给的 kotlin 代码有示例,请问参考这个写的话,遇到了什么具体的问题吗?

import cn.leancloud.LCUser
import io.reactivex.Observer
import io.reactivex.disposables.Disposable

// 忽略了一部分代码,重点看下面这些

user.signUpInBackground().subscribe(object : Observer<LCUser?> {
        override fun onSubscribe(d: Disposable) {
            Log.e(TAG, "onSubscribe: "+ d.toString() )
        }

        override fun onNext(t: LCUser) {
            Log.e(TAG, "注册成功: "+ t.toJSONString() )

        }

        override fun onError(e: Throwable) {
            Log.e(TAG, "注册失败: "+ e.message.toString() )

        }

        override fun onComplete() {

        }

    })

哎!这个代码是错的,编译不过去,看一楼的图

你好,一楼图和这个代码是不一样的……你再看看……

是一样的,现在解决了,升级版本。之前的错误都是按照你们文档配置来的。

implementation 'io.reactivex.rxjava3:rxandroid:3.0.2'
implementation 'io.reactivex.rxjava3:rxjava:3.1.5'