我在Alert对话框中有一个edittext .....如果ediitext不为空,我的操作效果很好.....我想在alertdialog中ediitext为空时设置焦点。
需要帮助,在此先感谢
我尝试了以下代码,请看看:---

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()
                }
上面的代码导致logtcat错误导致崩溃:-java.lang.NumberFormatException: For input string: ""需要帮助谢谢:)

最佳答案

 val finalValue = value.toInt() // value is empty. That's why problem
您的 finalValue Empty or null 。您必须检查它。

DEMO
    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()

  }

08-07 02:27