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>
或者应该在应用工具栏中使用&lt; - 箭头处理它。我当然在我自己使用的各种应用程序中看到了这两种类型。
只是想知道“建议”是什么,如果有的话。 干杯。
答案 0 :(得分:0)
用户需要通过按后退按钮或提供导航(屏幕左上角的箭头)来关闭它。
后退按钮
以下是定义后退按钮的方法:
@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>
因此,操作栏将允许用户返回您想要的活动。
答案 1 :(得分:0)
尝试这样的事情怎么样(因为你说你有活动和片段)
你的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语句。