Intereting Posts

как установить текст, фокус, ошибку на editText в android с Kotlin

Я много искал в Интернете о том, как я могу использовать методы setFocusable() , setText() , setError() т. Д. В editText(s) в android с Kotlin (я знаю, что мы можем использовать вышеупомянутые методы в java), но Я не смог найти точное решение, которое будет работать для меня.

Я использую 1.) Волейбол для http-звонков 2.) Плагин kotlin для студии android с версией = '1.1.3-2' 3.) anko library

Проблемы, с которыми мне приходится сталкиваться при запуске приложения: 1.) Метод setError () не вызван. 2.) Я не могу использовать setText () и setFocus () в editText.

обратите внимание, что мне нужно решение (ы) в Kotlin, а не Java.

Заранее спасибо!

 private fun askAppointment() { if (editTextPersonName?.text.isNullOrEmpty()) { editTextPersonName?.error ="Person Name cannot be empty." return } else if (editTextPersonMobile?.text.isNullOrEmpty()) { editTextPersonMobile?.error = "Person Mobile cannot be empty." return } else if (editTextPersonEmail?.text.isNullOrEmpty()) { editTextPersonEmail?.error = "Person Email cannot be empty." return } else if (editTextSubject?.text.isNullOrEmpty()) { editTextSubject?.error = "Subject cannot be empty." return } else if (editTextDescription?.text.isNullOrEmpty()) { editTextDescription?.error = "Description cannot be empty." return } else if (editTextAppointmentDate?.text.isNullOrEmpty()) { editTextAppointmentDate?.error = "Appointment Date cannot be empty." return } else if (editTextAppointmentTime?.text.isNullOrEmpty()) { editTextAppointmentTime?.error = "Appointment Time cannot be empty." return } 

Это просто. Предположим, что etEmail – это EditText . Вы можете установить текст следующим образом:

 etEmail?.setText("some text") 

И за ошибку вы можете использовать эту

 etEmail?.error = "This is error" 

И для set foucus вы можете попробовать это, но я не уверен в этом.

 etEmail?.isFocusable = false 

Я надеюсь, что это поможет вам.

Проверьте рабочий снимок выше кода.

введите описание изображения здесь

используйте эту логику в askAppointment()

 private fun askAppointment() { if (editTextPersonName?.text.isNullOrEmpty()) { editTextPersonName?.error = "Person Name cannot be empty." return } else if (editTextPersonMobile?.text.isNullOrEmpty()) { editTextPersonMobile?.error = "Person Mobile cannot be empty." return } else if (editTextPersonEmail?.text.isNullOrEmpty()) { editTextPersonEmail?.error = "Person Email cannot be empty." return } else if (editTextSubject?.text.isNullOrEmpty()) { editTextSubject?.error = "Subject cannot be empty." return } else if (editTextDescription?.text.isNullOrEmpty()) { editTextDescription?.error = "Description cannot be empty." return } else if (editTextAppointmentDate?.text.isNullOrEmpty()) { editTextAppointmentDate?.error = "Appointment Date cannot be empty." return } else if (editTextAppointmentTime?.text.isNullOrEmpty()) { editTextAppointmentTime?.error = "Appointment Time cannot be empty." return } else { //creating volley string request val stringRequest = object : StringRequest(Request.Method.POST, URL, Response.Listener<String> { response -> try { val jsonObject = JSONObject(response) val feedback = jsonObject.getString("response") toast("$feedback") //finish() //finish Activity after sending request } catch (e: JSONException) { e.printStackTrace() } }, object : Response.ErrorListener { override fun onErrorResponse(volleyError: VolleyError) { toast("error :(") } }) { @Throws(AuthFailureError::class) override fun getParams(): Map<String, String> { val params = HashMap<String, String>() params.put("personName", editTextPersonName?.text.toString()) params.put("personMobile", editTextPersonMobile?.text.toString()) params.put("personEmail", editTextPersonEmail?.text.toString()) params.put("subject", editTextSubject?.text.toString()) params.put("description", editTextDescription?.text.toString()) params.put("appointMentDate", editTextAppointmentDate?.text.toString()) params.put("appointMentTime", editTextAppointmentTime?.text.toString()) return params } } //adding request to queue AppController.instance?.addToRequestQueue(stringRequest) } }