如何使用语言环境和配置 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()
以确保适配器应用更改。
我想根据我的应用程序中的语言更改更改资产文件夹中的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()
以确保适配器应用更改。