android - 如何使用改造显示字段缺少来自 api 的错误响应?
问题描述
我正在制作一个登录页面。我所做的是-->
1.当用户输入正确的登录详细信息时-->它将带他到下一个成功的主页
2.当用户输入错误的登录详细信息时-->显示来自API的错误响应,表明电子邮件或密码错误,稍后再试..
所以基本上我想要的是 - >当用户忘记填写电子邮件或密码等字段时,它应该给出来自 API 的响应,如“数据丢失”。
这是我的json:
{
"status": 400,
"message": "Data missing.",
"user_msg": "Data missing"
}
这是我到目前为止所做的代码-->
loginbtn.setOnClickListener {
val email = loginuser.text.toString().trim()
val password = loginpassword.text.toString().trim()
if (email.isEmpty()) {
loginuser.error = "Email required"
loginuser.requestFocus()
return@setOnClickListener
}
if (password.isEmpty()) {
loginpassword.error = "Password required"
loginpassword.requestFocus()
return@setOnClickListener
}
override fun onResponse(
call: Call<LoginResponse>,
response: Response<LoginResponse>
) {
var res = response
Log.d("response check ", "" + response.body()?.status.toString())
if (res.body()?.status==200) {
// when typed right details
SharedPrefManager.getInstance(applicationContext)
.saveUser(response.body()?.data!!)
val intent = Intent(applicationContext, HomeActivity::class.java)
intent.flags =
Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
Toast.makeText(
applicationContext,
res.body()?.message,
Toast.LENGTH_LONG
).show()
Log.d("kjsfgxhufb",response.body()?.status.toString())
startActivity(intent)
finish()
}
else
{
//when typed wrong details
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)
}
}
}
})
}
因此,当用户忘记填写电子邮件或密码等任何字段时,我想知道上述 json 的逻辑。所以它必须显示吐司中缺少数据。
需要帮助...谢谢
解决方案
当你得到服务器的响应时,做一件事:
- 检查所有输入字段的长度,验证用户是否遗漏了任何字段。
- 提示 Toast OR 对话框缺少任何字段。
推荐阅读
- mysql - 将数据从 mysql 迁移到 postgres pgloader IRONCLAD::SIMPLE-OCTET-VECTOR
- awk - 获取非空白字符的最后一行的行号
- javascript - 在 Highcharts 中追加数据值
- ios - 是否可以使用电子邮件中的通用链接(深层链接)启动 iOS 应用程序 - iOS
- database - 如果更新持久性数据库,Ingnite 会自动加载数据
- php - 具有选项来自多对多列的 EntityType 字段时出错
- reactjs - 如何替换我的 redux 操作并使用创建操作库?
- php - 在codeigniter上上传图片和视频
- azure-active-directory - 第三方 Azure AD B2B 能否管理他们自己对我的受保护 API 的权限?
- php - 找不到数据时如何发送空白数组?