Android :AccountPicker legt Light Theme fest
Frage
Ist es möglich, das Thema des Auswahldialogs festzulegen?
import com.google.android.gms.common.AccountPicker;
....
String[] accountTypes = new String[]{"com.google"};
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
accountTypes, false, null, null, null, null);
activity.startActivityForResult(intent, REQUEST_CODE_PICK_ACCOUNT);
Mein Basis-App-Theme ist android:Theme.Light
aber dieser Dialog ist düster.Danke.
Lösung
Wenn Sie das Thema des Dialogs ändern möchten, sollten Sie das ändern newChooseAccountIntent
Zu zza
und fügen Sie zwei ganzzahlige Argumente hinzu.Der erste dient zum Überschreiben des Themas. Wenn Sie ihn auf 1 setzen, wird das Dialogthema in „Licht“ geändert.
String[] accountTypes = new String[]{"com.google"};
Intent intent = AccountPicker.zza(null, null, accountTypes, false, null, null, null, null, false, 1, 0);
startActivityForResult(intent, REQUEST_CODE_PICK_ACCOUNT);
Andere Tipps
Sie können es ändern, wenn Sie über alle Argquente überschreiben, in einer übergeordneten Klasse in Methode newChooseAccountIntent(Account var0, ArrayList<Account> var1, String[] var2, boolean var3, String var4, String var5, String[] var6, Bundle var7) {}
Es ist sehr einfach, es zu ändern, indem Sie ihn zu Ihrem Code hinzufügen ...
Intent intent = AccountPicker.newChooseAccountIntent(null, null,
new String[]{GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE},
false, null, null, null, null).
putExtra("overrideTheme", 1);
startActivityForResult(intent, REQUEST_CODE_EMAIL);