Моя деятельность signUpClient.kt
вызывает класс API, отправляя тексты EditText в API (в рамках модели, называемой клиентами):
signUpAPI.postClient (клиент)
Внутри этого API есть функция, которая публикует клиента (код ниже).
Когда данное электронное письмо уже существует, сервер возвращает сообщение об ошибке. Я могу отобразить ошибку через Toast, передавая правильный контекст.
Дело в том, что я хочу указать пользователю, что поле email
неверно, изменив свойство его EditText.
Я попытался получить доступ к его идентификатору из API, но он не получил к нему доступ.
Есть ли способ сделать это?
ПРИМЕЧАНИЕ. Я знаю, как изменить свойства EditText, проблема в том, как изменить его из другого класса (это даже не действие).
Я попытался использовать findViewById
безуспешно.
signup_client.kt:
btn_signup.setOnClickListener() {
val name = et_name.text.toString()
val email = et_email.text.toString()
val cellphone = et_cellphone.text.toString()
val birthdate = et_birthdate.text.toString()
val password = et_password.text.toString()
// Constructs a new client object
val client = Client(
name,
email,
cellphone,
birthdate,
password
)
signUpAPI = API(this)
signUpAPI.postCliente(client)
}
API.kt:
fun postCliente(cliente: Cliente) {
val TAG = "API Activity"
val apiInterface: ApiInterface
apiInterface = ClientApi.getClient().create(ApiInterface::class.java)
val clientePostCall = apiInterface.postCliente(cliente)
mProgressBar.visibility = View.VISIBLE
clientePostCall.enqueue(object: Callback<Cliente> {
override fun onResponse(call: Call<Cliente>, response: Response<Cliente>) {
mProgressBar.visibility = View.GONE
if(response.isSuccessful){
try {
Toast.makeText(context,"User " + response.body()!!.name + " created successfully.",Toast.LENGTH_SHORT).show()
val backHomeIntent = Intent(context, MainActivity::class.java)
context.startActivity(backHomeIntent)
} catch (e: NullPointerException) {
Toast.makeText(context, "Problem is unknown: ", Toast.LENGTH_SHORT).show()
}
}else {
try {
var jObjError = JSONObject(response.errorBody()!!.string())
var email = jObjError.getString("client_email")
Toast.makeText(context, "Email " + email + " já existe.", Toast.LENGTH_SHORT).show()
} catch (e: IOException){
Toast.makeText(context, "Problem is unknown: ", Toast.LENGTH_SHORT).show()
}
}
}
override fun onFailure(call: Call<Cliente>, t: Throwable) {
mProgressBar.visibility = View.GONE
Log.e(TAG, "onFailure: " + t.localizedMessage)
}
})
}