Я создал форму в AlertDialog. Сейчас я пытаюсь опубликовать его, используя Okhttp со всеми заполненными полями, но мое приложение вылетает со следующим сообщением.
Ошибка:
2019-10-12 23:34:27.579 26232-26232/com.kabelash.todolistbboxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.kabelash.todolistbboxx, PID: 26232
java.lang.IllegalStateException: tskName must not be null
at com.kabelash.todolistbboxx.MainActivity$addNewTask$1.onClick(MainActivity.kt:47)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Примечание: txtName вообще не равно нулю, когдаотправка формы.
Код для AlertDialog на Kotlin:
val builder = AlertDialog.Builder(this)
val inflater = layoutInflater
builder.setTitle(R.string.add_new_task)
val dialogLayout = inflater.inflate(R.layout.dialog_new_task, null)
builder.setView(dialogLayout)
builder.setPositiveButton(R.string.save) { dialogInterface, i ->
val name = tskName.text.toString().trim()
val status = tskStatus.text.toString().trim()
val description = tskDesc.text.toString().trim()
val expiry_date = tskDate.text.toString().trim()
val client = OkHttpClient()
val formBody = FormBody.Builder()
.add("name", name)
.add("status", status)
.add("description", description)
.add("expiry_date", expiry_date)
.build()
val request = Request.Builder()
.url("https://someurl.com")
.post(formBody)
.build()
try {
val response = client.newCall(request).execute()
val body = response.body?.string()
println(body)
} catch (e: IOException) {
e.printStackTrace()
}
}
builder.setNegativeButton(R.string.cancel, null)
builder.show()
Кто-то Пожалуйста, помогите мне решить его?