如何解决在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()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。