Я меняю язык моего приложения на арабский, используя фрагмент кода ниже.Но когда он меняется, ресурсы внутри RecyclerView
не меняются.Это только изменение направления (в пределах Activity
), все другие виды меняют значения.(mipmap, строка), но значения для RecyclerView внутри фрагмента не изменяются.
Файл класса
Locale locale;
Sessions session = new Sessions(context);
if (session.getLanguage().equals("1")) {
locale = new Locale("en-rU");
}
else{
locale = new Locale("ar");
}
Locale.setDefault(locale);
Configuration config = new Configuration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.setLocale(locale);
} else {
config.locale = locale;
}
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
Файл XML-макета
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/spotList"
tools:listitem="@layout/recycler_spot"/>
Класс адаптера
public class ItemsAdapter extends RecyclerView.Adapter<ItemsAdapter.CustomViewHolder> {
Context context;
OnItemClick onItemClick;
public ItemsAdapter(Context context){
this.context=context;
}
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(context).inflate(R.layout.recycler_items,viewGroup,false);
return new CustomViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull CustomViewHolder customViewHolder, int i) {
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
@Override
public int getItemCount() {
return 6;
}
public class CustomViewHolder extends RecyclerView.ViewHolder {
public CustomViewHolder(@NonNull View itemView) {
super(itemView);
}
}
public interface OnItemClick{
public void onItemClick(int position);
}
}