最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何正确初始化改造实例

网站源码admin21浏览0评论

如何正确初始化改造实例

如何正确初始化改造实例

我一直在尝试通过Tutotial视频使用RXJava,RetroFit和NodeJS在Kotlin上制作Android应用。添加此字符串-val retrofit = RetroFitClient.getInstance()后,该应用程序无法在我的模拟器上打开,因此我无法注册或登录。

有MainActivity代码,项目在此存储库中

class MainActivity : AppCompatActivity() {

lateinit var IMyService:INodeJS
internal var disposables = CompositeDisposable()
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // init API
     val retrofit = RetroFitClient.getInstance()
     var IMyService = retrofit.create(INodeJS::class.java)

    login_button.setOnClickListener {
        loginUser(edit_email.text.toString(), password.text.toString())
    }

    register_button.setOnClickListener {
        registerUser(edit_email.text.toString(), password.text.toString())
    }
}

override fun onStop() {
    disposables.clear() // do not send event after activity has been stopped
    super.onStop()
}

override fun onDestroy() {
    disposables.clear() // do not send event after activity has been destroyed
    super.onDestroy()
}

private fun loginUser(email: String, password: String) {
    disposables.addAll(IMyService.loginUser(email, password)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe { message ->
            if (message.contains("encrypted_password"))
                Toast.makeText(this, "Login success", Toast.LENGTH_LONG).show()
            else
                Toast.makeText(this, message, Toast.LENGTH_LONG).show()
        })
}

private fun registerUser(email: String, password: String) {
    val enter_name_view = LayoutInflater.from(this)
        .inflate(R.layout.enter_name_layout, null)

    MaterialStyledDialog.Builder(this)
        .setTitle("Register")
        .setDescription("One more step")
        .setCustomView(enter_name_view)
        .setIcon(R.drawable.ic_user)
        .setNegativeText("Cancel")
        .onNegative { dialog, _ -> dialog.dismiss() }
        .setPositiveText("Register")
        .onPositive {
                _, _ ->
                val editName = enter_name_view.findViewById<View>(R.id.name) as MaterialEditText

                disposables.addAll(IMyService.registerUser(email, editName.text.toString(), password)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe { message ->
                        Toast.makeText(this, message, Toast.LENGTH_LONG).show()
                })
        }
        .show()
}
}
回答如下:

您正在尝试在较旧的Java版本上使用Java 8功能。将此添加到您应用的build.gradle

android {
 ...
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论