我正在開發一個Android應用程序,它有一個設置選項來更改語言。它工作正常,但谷歌登錄按鈕不會改變語言,直到我關閉應用程序並重新打開它。本地化谷歌登錄按鈕在運行時
這是onCreate方法的代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String language = "en";
if (Locale.getDefault().getLanguage().equals("es")) {
language = "es";
}
String languagePref = prefs.getString(activity.getResources().getString(R.string.settings_language_key), language);
Locale locale = new Locale(languagePref);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config, getResources().getDisplayMetrics());
setContentView(start_view);
SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button);
// Set the dimensions of the sign-in button.
if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
signInButton.setSize(SignInButton.SIZE_WIDE);
} else {
signInButton.setSize(SignInButton.SIZE_STANDARD);
}
這是佈局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".StartActivity"
android:id="@+id/drawer_layout"
style="@style/StartViewDrawerContainer">
<RelativeLayout
style="@style/StartViewParentVertical">
<!-- Some GUI elements -->
<LinearLayout
style="@style/StartViewMainContainer">
<!-- More GUI elements -->
<com.google.android.gms.common.SignInButton
android:id="@+id/sign_in_button"
style="@style/StartViewSignInButton"/>
</LinearLayout>
</RelativeLayout>
<include layout="@layout/content_main" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
style="@style/StartViewNavigationView"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
此代碼爲每一個字符串文字而不是谷歌的按鈕的偉大工程。
有沒有什麼辦法來以編程方式本地化登錄文本?
谷歌標誌按鈕它不是簡單的按鈕。你可以使用後添加谷歌GSM庫如果你想改變谷歌簽名按鈕的語言比添加XML簡單的按鈕和設計像谷歌按鈕比你可以改變谷歌登錄按鈕語言 –
我不明白你是什麼意思,當你說加入谷歌GSM圖書館。你能給我更多的細節嗎?謝謝! –
我想你想在你的應用中使用谷歌身份驗證?比你想在你的gradle中使用這個庫。編譯'com.google.android.gms:play-services-auth:9.2.1' –