Я пытаюсь написать приложение с помощью SDK Google Диска. Я хотел бы использовать объект Preference в PreferenceActivity, который позволяет пользователю выбрать учетную запись Google, к которой они хотят загружать файлы. Я пытаюсь использовать EditTextPreference, чтобы запустить намерение выбора учетной записи. Оно работает. Однако после выбора учетной записи появляется диалог EditText. Можно ли отключить диалог? Или я об этом ошибаюсь?Отключить диалог в EditTextPreference, Launch Intent Вместо
preferences.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:title="@string/title_upload_category">
<EditTextPreference
android:title="@string/title_upload_acct"
android:key="@string/key_upload_acct"/>
</PreferenceCategory>
</PreferenceScreen>
PrefsFragment
public static class PrefsFragment extends PreferenceFragment{
@Override
public void onCreate(Bundle savedinstancestate) {
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(getActivity().getApplicationContext(), Arrays.asList(DriveScopes.DRIVE));
EditTextPreference acctValue = (EditTextPreference)findPreference(getString(R.string.key_upload_acct));
acctValue.setOnPreferenceClickListener(new OnPreferenceClickListener(){
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(credential.newChooseAccountIntent(), 1);
return false;
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null){
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
acctValue.setSummary(accountName);
acctValue.setText(accountName);
}
}
Спасибо! (Я действительно планировал ввести комментарий, говоря, что я собираюсь сделать именно то, что вы описали. Рад слышать, что это правильный путь). Еще один вопрос. Я работал с сохранением предпочтений с помощью SharedPreferences.Editor.putString, так как нет метода Preference.setText. Это верно? – Paul
Да, это правильно. Вам нужно будет настроить предпочтение вручную. – athor