首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin-android未解析的引用: queue

Kotlin-android未解析的引用: queue
EN

Stack Overflow用户
提问于 2018-08-12 18:40:08
回答 1查看 1.5K关注 0票数 0

我导入了retrofi2.Callback,但仍然得到这个错误未解析的引用: enqueue这是登录类的代码

代码语言:javascript
复制
  import android.content.Intent
  import android.support.v7.app.AppCompatActivity
  import android.os.Bundle
  import android.provider.ContactsContract
  import android.widget.Button
  import android.widget.EditText
  import android.widget.TextView
  import android.widget.Toast
  import com.cbmis.imageapp.Common.Common
  import com.cbmis.imageapp.Model.APIResponse
  import com.cbmis.imageapp.Remote.IMyAPI
  import kotlinx.android.synthetic.main.activity_login.*
  import retrofit2.Call
  import retrofit2.Callback
  import retrofit2.Response 

类LoginActivity : AppCompatActivity() {

代码语言:javascript
复制
 internal lateinit var mService:IMyAPI
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)
    //initservice
    mService = Common.api

    //Event
 txtregister.setOnClickListener { startActivity(Intent(this@LoginActivity,RegisterActivity::class.java))
 finish()
 }
  btn_login.setOnClickListener { authentificateUser(findViewById<TextView>(R.id.email).text.toString(), findViewById<TextView>(R.id.password).text.toString()) }

    }



private fun authentificateUser(email: String, password: String) {

    mService.loginUser(email, password)
            .enqueue(object :Callback<APIResponse> {
                override fun onFailure(call: Call<APIResponse>?, t: Throwable?) {
                   Toast.makeText(this@LoginActivity,t!!.message,Toast.LENGTH_SHORT).show()
                }

                override fun onResponse(call: Call<APIResponse>?, response: Response<APIResponse>?) {
                    if (response!!.body()!!.error)
                        Toast.makeText(this@LoginActivity,response!!.body()!!.errr_msg,Toast.LENGTH_SHORT).show()
                    else
                        Toast.makeText(this@LoginActivity, "Login Success!",Toast.LENGTH_SHORT).show()

                }

         })
}

}

这是接口/

代码语言:javascript
复制
interface IMyAPI {
@FormUrlEncoded
@POST("signup.php")
fun registerUser(@Field("email") email:String,@Field("name")name:String,@Field("password") password:String,@Field("dateofbirth") dateofbirth:String,@Field("genderM") genderM:String,@Field("genderF") genderF:String):Class<APIResponse>

@FormUrlEncoded
@POST("login.php")
fun loginUser(@Field("email") email:String,@Field("password") password:String):Class<APIResponse>

}

可以提出任何解决方案来解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2018-08-12 22:45:00

你应该从你的Call函数中返回一个Retrofit API:

代码语言:javascript
复制
interface IMyAPI {

    @FormUrlEncoded
    @POST("signup.php")
    fun registerUser(/* params */) : Call<APIResponse>


    @FormUrlEncoded
    @POST("login.php")
    fun loginUser(/* params */): Call<APIResponse>

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51808035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档