Andorid App内部跟随熊语言改变
android的SystemUI語言不跟隨系統語言改變的問題
?(2013-12-13 17:41:34) 轉載▼ 標簽:? android?systemui?系統語言改變 | 分類:?Android開發 |
android的SystemUI語言不會跟隨系統語言改變,對于這個問題,大家都知道,是因為SystemUI不是Activity的原因。要修改這個問題,就只能通過對語言改變的監聽來實現,而在SystemUI也確實有對語言改變的監聽:
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)) {//語言改變
????????????????updateResources();
????????????????repositionNavigationBar();
????????????????updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
}
}
}
可以看到語言改變后會調用updateResources()這個方法,看看這個方法怎么寫的:
void updateResources() {
???????。。。
if (mClearButton instanceof TextView) {
???????????((TextView)mClearButton).setText(context.getText(R.string.status_bar_clear_all_button));
????????}
????????loadDimens();
????}
見紅色字體,是對狀態欄通知的清除按鈕設置文字,而確實語言改變,清除按鈕的語言是會相應變化的。
那么遇到不會改變語言的地方,我們就可以在updateResources()中增加自己的邏輯,即重新設置布局的字串,就可以解決了。
親測有用,寫的不對的地方,歡迎大家指教。
總結
以上是生活随笔為你收集整理的Andorid App内部跟随熊语言改变的全部內容,希望文章能夠幫你解決所遇到的問題。