在 android 中处理 AlertDialog 中的 Edittext

Handle Edittext in AlertDialog in android

我在警报对话框中有一个编辑文本.....如果编辑文本不为空,我的操作执行良好.....我想在警报对话框中的编辑文本为空时设置焦点..

需要帮助提前致谢

我试过下面的代码请看一下:---

buynow.setOnClickListener {
                    val mBuild: AlertDialog.Builder = AlertDialog.Builder(this@Product_details)
                    val mView: View = layoutInflater.inflate(R.layout.buynowdialog, null)



                    val titleimage=mView.findViewById<TextView>(R.id.titleimage2)  as TextView
                    val imagerate=mView.findViewById<ImageView>(R.id.imagebuy) as ImageView
                    titleimage.setText(ygd)
                    Glide.with(getApplicationContext()).load(res?.body()!!.data.product_images.get(0).image).into(imagerate);
                  
                  
                  val buynumber = mView.findViewById<EditText>(R.id.editbuy)

                  val btnSubmit =
                        mView.findViewById(R.id.btnbuynow) as Button
                    Log.e("checkid",id.toString())


                    mBuild.setView(mView)
                    val dialog: AlertDialog = mBuild.create()



                  btnSubmit.setOnClickListener(object : View.OnClickListener {
                      override  fun onClick(v: View?) {
                          val value: String = buynumber.getText().toString()

                          val finalValue = value.toInt()
                         if (value.isEmpty()) {
                              Toast.makeText(
                                  applicationContext, "Data is missing",Toast.LENGTH_LONG
                              ).show()
                              editbuy.error = "Email required"
                              editbuy.requestFocus()

                          }
                          val token: String =
                              SharedPrefManager.getInstance(
                                  applicationContext
                              ).user.access_token.toString()
                          RetrofitClient.instancecart.buynow(token,id,finalValue)
                              .enqueue(object : Callback<ResponseBaseCartAdd> {
                                  override fun onFailure(call: Call<ResponseBaseCartAdd>, t: Throwable) {
                                      Log.d("res", "" + t)


                                  }

                                  override fun onResponse(
                                      call: Call<ResponseBaseCartAdd>,
                                      response: Response<ResponseBaseCartAdd>
                                  ) {
                                      Log.e("hi",id)
                                      var res = response
                                      Log.e("checkres",res.toString())
                                      Log.d("response check ", "" + response.body()?.status.toString())
                                      if (res.isSuccessful) {
                                          Toast.makeText(
                                              applicationContext,
                                              res.body()?.user_msg,
                                              Toast.LENGTH_LONG
                                          ).show()
                                      dialog.dismiss()
                                          Log.d("kjsfgxhufb",response.body()?.user_msg.toString())
                                      }
                                      else{
                                          try {
                                              val jObjError =
                                                  JSONObject(response.errorBody()!!.string())
                                              Toast.makeText(
                                                  applicationContext,
                                                  jObjError.getString("message")+jObjError.getString("user_msg"),
                                                  Toast.LENGTH_LONG
                                              ).show()
                                          } catch (e: Exception) {
                                              Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()
                                              Log.e("errorrr",e.message)
                                          }
                                      }
                                  }
                              })
                      }
                  })
                    dialog.show()
                }

上面的代码正在崩溃,在 logcat 中有一个错误:-- java.lang.NumberFormatException: For input string: ""

需要帮助谢谢:)

NumberFormatException is an Exception that might be thrown when you try to convert a String into a number, where that number might be an int , a float , or any other Java numeric type.

 val finalValue = value.toInt() // value is empty. That's why problem

您的 finalValueEmpty or null。你一定要检查一下。

isNotEmpty() is used to find if the String is not empty/String is length 0 and not null.

演示版

    if (value.isNotEmpty()) {
    val finalValue = value.toInt()
    val token: String =SharedPrefManager.getInstance(applicationContext).user.access_token.toString()
    RetrofitClient.instancecart.buynow(token,id,finalValue)
    .....your task.....
   }
  else
  {
    Toast.makeText(applicationContext, "Data is missing",Toast.LENGTH_LONG).show()
    editbuy.error = "Email required"
    editbuy.requestFocus()
    
  }