Andorid App内部跟随熊语言改变
android的SystemUI語(yǔ)言不跟隨系統(tǒng)語(yǔ)言改變的問(wèn)題
?(2013-12-13 17:41:34) 轉(zhuǎn)載▼ 標(biāo)簽:? android?systemui?系統(tǒng)語(yǔ)言改變 | 分類(lèi):?Android開(kāi)發(fā) |
android的SystemUI語(yǔ)言不會(huì)跟隨系統(tǒng)語(yǔ)言改變,對(duì)于這個(gè)問(wèn)題,大家都知道,是因?yàn)镾ystemUI不是Activity的原因。要修改這個(gè)問(wèn)題,就只能通過(guò)對(duì)語(yǔ)言改變的監(jiān)聽(tīng)來(lái)實(shí)現(xiàn),而在SystemUI也確實(shí)有對(duì)語(yǔ)言改變的監(jiān)聽(tīng):
PhoneStatusBar.java文件中:
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
????????public void onReceive(Context context, Intent intent) {
????????????String action = intent.getAction();
???//Log.e(TAG,"action-->"+action);
????????????if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
????????????????。。。????????????}
????????????else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
????????????????。。。????????????}
????????????else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) {//語(yǔ)言改變
????????????????updateResources();
????????????????repositionNavigationBar();
????????????????updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
}
}
}
可以看到語(yǔ)言改變后會(huì)調(diào)用updateResources()這個(gè)方法,看看這個(gè)方法怎么寫(xiě)的:
void updateResources() {
???????。。。
if (mClearButton instanceof TextView) {
???????????((TextView)mClearButton).setText(context.getText(R.string.status_bar_clear_all_button));
????????}
????????loadDimens();
????}
見(jiàn)紅色字體,是對(duì)狀態(tài)欄通知的清除按鈕設(shè)置文字,而確實(shí)語(yǔ)言改變,清除按鈕的語(yǔ)言是會(huì)相應(yīng)變化的。
那么遇到不會(huì)改變語(yǔ)言的地方,我們就可以在updateResources()中增加自己的邏輯,即重新設(shè)置布局的字串,就可以解決了。
親測(cè)有用,寫(xiě)的不對(duì)的地方,歡迎大家指教。
總結(jié)
以上是生活随笔為你收集整理的Andorid App内部跟随熊语言改变的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。