我导入了retrofi2.Callback,但仍然得到这个错误未解析的引用: enqueue这是登录类的代码
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() {
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()
}
})
}}
这是接口/
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>}
可以提出任何解决方案来解决这个问题
发布于 2018-08-12 22:45:00
你应该从你的Call函数中返回一个Retrofit API:
interface IMyAPI {
@FormUrlEncoded
@POST("signup.php")
fun registerUser(/* params */) : Call<APIResponse>
@FormUrlEncoded
@POST("login.php")
fun loginUser(/* params */): Call<APIResponse>
}https://stackoverflow.com/questions/51808035
复制相似问题