在我的应用程序中,我正在显示Preference Headers in the recommended way。
我扩展PreferenceActivity并从XML资源中添加标题:
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
一个这样的标题是:
<header
android:fragment="com.example.FragmentSettings"
android:summary="Tap to configure"
android:title="General Settings" />
的主要偏好片段
特定设置允许用户擦除应用程序有权访问的所有数据并取消其帐户的授权。
如果用户选择此选项,我会擦除所有内容,缓存,共享首选项等等,然后我会将它们返回到初始授权屏幕。
问题是,即使所有活动都呼叫finish();
,即使我致电System.exit(0);
我怎么能把该死的东西关闭!?
帮助!
答案 0 :(得分:0)
鉴于您已经提供了少量详细信息,我会尝试提供答案,假设您希望在打开授权屏幕时清除活动后台堆栈。
FragmentSettings:
public class FragmentSettings extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_settings);
Preference myPref = (Preference) findPreference("pref_clearAllData");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(FragmentSettings.this.getActivity(), AuthActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
}
});
}
}
preference_settings(我假设您没有使用复选框,但它可以作为示例):
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="General Settings" >
<CheckBoxPreference
android:key="pref_clearAllData"
android:title="Clear all data"
android:summary="Clears all data and shows the authorisation screen"
android:defaultValue="false" />
</PreferenceCategory>
答案 1 :(得分:-1)
请试试这个:
protected void onListItemClick (ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
finish();
}