我有一个带有 var RetrofitClient : RetrofitClient = RetrofitClient()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
loginBtn.setOnClickListener {
val user = userTxt.text.toString()
val pass = passTxt.text.toString()
if (validateLogin(user, pass)){
login(user, pass)
}
}
}
fun validateLogin(user: String, pass: String): Boolean {
if (user == null || user.trim().isEmpty()){
Toast.makeText(this, "Missing Username or Password", Toast.LENGTH_SHORT).show()
return false
}
if (pass == null || pass.trim().isEmpty()){
Toast.makeText(this, "Missing Username or Password", Toast.LENGTH_SHORT).show()
return false
}
return true
}
fun login(user: String, pass: String) {
RetrofitClient.login(user, pass)
val apiLogin = RetrofitClient.providesGetLogin().getAccessToken()
apiLogin.enqueue(object : Callback<LoginResponse> {
override fun onResponse(call: Call<LoginResponse>, response: Response<LoginResponse>) {
if(response.isSuccessful){
if(response.body()?.code == 0){
Toast.makeText(this@LoginActivity, "Login Successful!", Toast.LENGTH_SHORT).show()
val intent = Intent(this@LoginActivity, List_usersActivity::class.java)
startActivity(intent)
} else {
Toast.makeText(this@LoginActivity, "Login Failed.", Toast.LENGTH_SHORT).show()
}
}
}
override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
Toast.makeText(this@LoginActivity, "Login Failed.", Toast.LENGTH_SHORT).show()
}
})
}
}
属性的模型,可以是“女性”或“男性”。
处理该属性的最佳方法是什么?
我想到了解决此问题的一些方法,但是不确定我是否对此过于思索或解决不佳。
1)制作一个帮助程序或无标签组件来接收该值,并注入翻译服务并进行翻译。带有附加标志以大写或小写输出。
2)只需使用gender
助手和t
作为翻译密钥,例如:concat
。这很简单,我将在所有地方复制粘贴,看起来很乱。
3)模型中的计算属性。我觉得在模型中注入翻译服务是错误的(只是我的印象,如果这是我擅长的正确方法)
4)组件中的计算属性,其中必须显示性别。就像选项2一样,但是在组件而不是模板中,将大量复制粘贴。