Я создал страницу входа, и эта страница поддерживает 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>
всплывающее сообщение между двумя языками:
![French Language without popup](https://i.stack.imgur.com/H2J6O.png)
Здесь я устанавливаю сообщение об ошибке в Английский но как добавить сообщение setError для поддержки разных языков?
Спасибо!