我正在尝试为我的Android应用程序提供阿拉伯语支持.Android 2.3默认提供阿拉伯语支持.所以,我想知道在Android中为阿拉伯语提供支持时是否需要进行任何UI更改.
由于阿拉伯语中的字母是从右到左书写的,我需要在Android UI布局设计和编码中遵循哪些约束?
否则Android本身将负责读取我们输入的数据,无论是从右到左键入.
任何人都可以帮我解决这个问题吗?
小智 1
我已经使用了这段代码并且工作完美,尝试一下..
\n\npublic static void change_setting_arabic(Context con) {\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0try {\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Locale locale = new Locale("ar");\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Class amnClass = Class.forName("android.app.ActivityManagerNative");\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Object amn = null;\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Configuration config = null;\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// amn = ActivityManagerNative.getDefault();\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Method methodGetDefault = amnClass.getMethod("getDefault");\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0methodGetDefault.setAccessible(true);\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0amn = methodGetDefault.invoke(amnClass);\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// config = amn.getConfiguration();\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Method methodGetConfiguration = amnClass\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0.getMethod("getConfiguration");\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0methodGetConfiguration.setAccessible(true);\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0config = (Configuration) methodGetConfiguration.invoke(amn);\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// config.userSetLocale = true;\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Class configClass = config.getClass();\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Field f = configClass.getField("userSetLocale");\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0f.setBoolean(config, true);\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// set the locale to the new value\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0config.locale = locale;\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// amn.updateConfiguration(config);\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Method methodUpdateConfiguration = amnClass.getMethod(\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0"updateConfiguration", Configuration.class);\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0methodUpdateConfiguration.setAccessible(true);\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0methodUpdateConfiguration.invoke(amn, config);\n\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0} catch (Exception e) {\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0// TODO: handle exception\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0Log.d("error lang change-->", "" + e.getMessage().toString());\n \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0}\n \xc2\xa0 \xc2\xa0}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |