如何使用语言环境和配置 select 不同的资产文件作为我的语言变化?

How to select different assets files as my language change using Locale and Configuration?

我想根据我的应用程序中的语言更改更改资产文件夹中的JSON文件,并希望在RecyclerView.[=12中感受数据=]

但我的适配器不应用该更改。

确保在选择另一个语言环境文件后必须再次设置适配器。如果您使用的是 RecyclerView,则将 LayoutManager 设置为您的回收视图,如下所示:

RecyclerView yourRecyclerView= (RecyclerView) findViewById(R.id.yourRecyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
rc_qList.setHasFixedSize(true);
rc_qList.setLayoutManager(layoutManager);

RecyclerViewAdapter yourAdapter = new RecyclerViewAdapter (MainActivity.this, yourArrayList);
rc_qList.setAdapter(yourAdapter);

您可以使用 Locale 对象获取设备的当前语言,然后将其与 Locale 对象的常量进行比较。例如:

Log.d(TAG, "onCreate: "+Locale.ENGLISH);
Log.d(TAG, "onCreate: "+Locale.getDefault().getDisplayLanguage());
Log.d(TAG, "onCreate: "+Locale.getDefault().getDisplayCountry());
Log.d(TAG, "onCreate: "+Locale.getDefault().getCountry());
Log.d(TAG, "onCreate: "+Locale.getDefault().getLanguage());

打印:

onCreate: en
onCreate: English
onCreate: United Kingdom
onCreate: GB
onCreate: en

不要忘记在数据收集更改后调用 adapter.notifyDataSetChanged() 以确保适配器应用更改。