gpt4 book ai didi

java - 如何修复不同语言中出现的 setError 消息?

转载 作者:行者123 更新时间:2023-12-01 23:08:16 25 4
gpt4 key购买 nike

我创建了一个登录页面,该页面支持 2 种不同的语言(英语和法语)

当我从一种语言翻译到另一种语言时,该页面运行良好。

但问题是,当我切换到法语时,setError 消息不再出现用于字段验证。

此代码将根据语言选择加载页面:

 public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.eng:
String languageToLoad = "en";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
this.setContentView(R.layout.activity_main);
break;

case R.id.fr:
languageToLoad = "fr";
locale = new Locale(languageToLoad);
Locale.setDefault(locale);
config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
this.setContentView(R.layout.activity_main);
break;

default:
break;
}
return super.onOptionsItemSelected(item);
}

这是用户名字段和 setError 消息的验证:

private boolean validateUsername(){

String username = usernameEditText.getText().toString().trim();

if(username.isEmpty()){

usernameEditText.setError("Field can't be empty");
return false;

} else if(username.length() > 15){

usernameEditText.setError("Username too long");
return false;

} else {
usernameEditText.setError(null);
return true;
}
}

XML 代码:

      <?xml version="1.0" encoding="utf-8"?>
<android.widget.RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<EditText
android:id="@+id/usernameEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="300dp"
android:ems="10"
android:hint="@string/YourUsername"
android:inputType="textPersonName"
android:maxLength="15"
app:errorEnabled="true" />

<Button
android:id="@+id/signupButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/test3"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:onClick="signupLogin"
android:hint="@string/login" />
</android.widget.RelativeLayout>

两种语言之间的弹出消息:

English Language Msg French Language without popup

这里我设置了英语的错误消息,但是有什么方法可以添加到setError消息以支持不同的语言?

谢谢!

最佳答案

使用来自字符串资源的setError消息,并使用英语作为首选语言的本地化字符串

关于java - 如何修复不同语言中出现的 setError 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58390178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com