在Android的AlertDialog中处理Edittext

问题描述

我在Alert对话框中有一个编辑文本.....如果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()
                }

以上代码已崩溃,并出现logcat错误:-java.lang.NumberFormatException: For input string: ""

需要帮助谢谢:)

解决方法

NumberFormatException是一个异常,当您 尝试将String转换为数字,其中该数字可能是 int,float或任何其他Java数字类型。

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

您的最终价值 Empty or null 。您必须检查它。

isNotEmpty()用于查找字符串是否不为空/字符串是否为 长度为0且不为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()
    
  }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...