2012-01-06 43 views
1

我正在研究一個Android應用程序,到目前爲止我已經添加了更改語言環境的設置,以便用戶可以讓應用程序中的語言環境不同於設備上的語言環境,現在全部活動運行良好,但小部件仍然使用設備的區域設置,而不是設置爲應用程序的區域設置。如何強制一個語言環境部件

有沒有辦法強制小部件使用比設備上設置的其他區域更像活動?

謝謝

回答

-1

我把語言放在微調器中。我將選定的語言環境保存在首選項(prefs)中,並在onConfigurationChanged方法中將其用於更改語言環境。我認爲你做相同或相似。
訣竅是,在Spinner的OnItemSelected方法中,我也調用OnConfigurationChanged,從資源設置文本並使所有受影響的小部件無效。瞧!所有文字都以選定的語言顯示。

spLanguages.setOnItemSelectedListener(new OnItemSelectedListener() { 
@Override 
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
    prefs.saveInt("language", spLanguages.getSelectedItemPosition()); 
    lan = spLanguages.getSelectedItemPosition(); 
    onConfigurationChanged(new Configuration()); 
    btnStart.setText(getResources().getString(R.string.main_start)); 
    btnStart.invalidate(); 
} 
@Override 
public void onNothingSelected(AdapterView<?> parentView) {} 
}); 
+0

這與小部件無關,@mmohab已經知道如何在活動中做到這一點。理論上,小部件可以在Update上讀取sharedpreferences,但onUpdate並不總是運行 – CQM 2012-11-29 21:11:06