Каков рекомендуемый способ закрыть экран настроек?
Android новичок здесь...
Я работаю с различными примерами, настраиваю экран настроек. Но часть, которую я не понимаю, это то, как пользователь должен выйти из экрана
public static class PrefsFragment extends PreferenceFragment {
...
}
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:color/white">
<PreferenceCategory android:title="@string/dialog_based_preferences">
<EditTextPreference
android:dialogTitle="@string/dialog_title_edittext_preference"
android:key="edittext_preference"
android:summary="@string/summary_edittext_preference"
android:title="@string/title_edittext_preference" />
<ListPreference
android:dialogTitle="@string/dialog_title_list_preference"
android:entries="@array/entries_list_preference"
android:entryValues="@array/entryvalues_list_preference"
android:key="list_preference"
android:summary="@string/summary_list_preference"
android:title="@string/title_list_preference" />
</PreferenceCategory>
Но руководство, которое я не могу найти, состоит в том, как пользователь должен ЗАКРЫТЬ экран настроек? Каково "официальное руководство" по этому вопросу?
Один пример, с которым я столкнулся, - это кнопка на экране настроек для выхода. Но создается впечатление, что это нестандартный подход (если есть такая вещь).
Это действительно лучший способ закрыть экран?
<Preference
android:key="@string/SavePref"
android:title="SAVE AND EXIT"
android:summary="Click >
android:widgetLayout="@layout/pref_reset_bd_button">
</Preference>
Или это должно быть решено на панели инструментов приложения с помощью стрелки <-. Я конечно видел оба типа в различных приложениях, которые я сам использую.
Просто интересно, что такое "совет", если таковой имеется. Приветствия.
2 ответа
Ожидается, что пользователь закроет его, нажав кнопку "назад" или предоставив навигацию вверх (стрелка в левом верхнем углу экрана).
Кнопка назад
Вот как определить кнопку "Назад":
@Override
public void onBackPressed() {
if (SOMETHING) {
DO SOMETHING ELSE
return;
}
// Otherwise defer to system default behavior.
super.onBackPressed();
}
Поведение по умолчанию состоит в том, чтобы вернуться к верхней активности стека после того, как этот извлечен.
Обеспечение навигации
Вы также можете установить родительскую активность предпочтения следующим образом:
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
</application>
Таким образом, панель действий позволит пользователю вернуться к деятельности, которую вы хотите.
Как насчет того, чтобы попробовать что-то подобное (так как вы сказали, что у вас есть активность и фрагмент)
в вашем xml:
<Preference
android:id="@+id/mPreferenceId"
android:key="@string/SavePref"
android:title="SAVE AND EXIT"
android:summary="Click >
android:widgetLayout="@layout/pref_reset_bd_button">
</Preference>
В вашей деятельности получите представление по id и добавьте что-то вроде этого:
@Override
public void onBackPressed() {
if(mPreference.getVisibility() != View.GONE){
((ViewGroup)mPreference.getParent()).removeView(mPreference);
return;
}
super.onBackPressed();
}
Если у вас нет дальнейших ссылок, он должен автоматически уничтожить вид.
Если под полноэкранным режимом вы имеете в виду, что у вас нет нижних кнопок, то добавьте прослушиватель обратного вызова и реализуйте там оператор if.