问答

android – 以编程方式关闭Preference Header

 来源    2019-04-14    1  

在我的应用程序中,我显示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" />

它推出了主要的Preference Fragment,扩展了PreferenceFragment

特定设置允许用户擦除应用程序可访问的所有数据并取消其帐户的授权.

如果用户选择此选项,我会擦除所有内容,缓存,共享首选项等等,然后我会将它们返回到初始授权屏幕.

问题是,即使所有活动调用finish(),Preference Header Screen仍然存在.即使我调用System.exit(0);

怎么能把该死的东西关闭!?

救命!

鉴于您提供的细节很少,我会尝试提供一个答案,假设您希望在打开授权屏幕时清除活动backstack.

> MyPreferenceActivity – 仅以’onBuildHeaders’为例(同样,单击按钮时会打开活动)
> preference-headers – 仅’FragmentSettings’

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>
相关文章
android – 以编程方式关闭插页式广告
问答我想确保Android上使用Android AdMob SDK的插页式广告可以关闭. 经过一些研究,在我看来,由于广告是一项单独的活动,这是不可能的. 我想要做的是在5秒后关闭广告. 有人可以向我保证 ...
1
android – 以编程方式关闭设备
问答我正在编写一个旨在运行在一个特定设备型号上的应用程序(运行基于Amlogic的固件的Android机顶盒设备).我有两个root功能,我的应用程序是用固件证书签名的. 我的应用程序是设备的主要焦点,并 ...
1
如何使用Android以编程方式关闭LCD(不进入睡眠模式)?
问答我正在尝试使用Trepn来测量Android设备的功耗. 我发现LCD占用了大部分功率,因此为了获得相对准确的功耗,我最好在实验前关闭LCD并在实验后打开. 如何使用Android以编程方式关闭LCD ...
1
android – 以编程方式关闭GPS
问答我有什么:目前我的应用程序通过GPS提供位置. 我想要的是:Gps在我退出应用程序后自动关闭.因为它一直在告诉我一次又一次的位置看起来很奇怪而且gps消耗了很多电池.::看看上面的评论线程似乎可以以编 ...
1
android – 以编程方式关闭ActionBar Spinner或避免打开它
问答我正在尝试使用ActionBar中的微调器在我的应用程序中提供帐户上下文.列表中的最后一个位置还有一个"添加帐户"元素.我正在使用ABS并使用.setNavigationMode( ...
1
android – 当我退出程序时以编程方式关闭GPS
问答我以编程方式启动了我的GPS 意图myIntent =新意图(Settings.ACTION_SECURITY_SETTINGS); mContext.startActivity(myIntent); ...
1
当脸部关闭Android屏幕时,以编程方式关闭屏幕
问答我的应用程序是一个拨号器,当用户将手机靠近他的头部时,我需要关闭屏幕,并防止点击控件 – 如本机Android拨号程序行为.我需要什么API级别,如何以正确的方式这样做?::我通过拆卸一个非常有名的V ...
android – 如何以编程方式关闭一个SearchView?
问答我目前在我的应用程序的操作栏中有一个SearchView.当我单击搜索图标时,SearchView会展开,键盘会按预期弹出.单击SearchView框中的"X"将按预期关闭Sear ...
1
在Android上以编程方式关闭应用程序的通知
问答我正在开发一个包管理器应用程序,该应用程序显示复选框以关闭安装在Android设备上的不同应用程序的通知. 从Android 4.1开始,用户可以从应用程序管理器关闭应用程序的通知.我可以以编程方式打 ...
Android以编程方式打开/关闭WiFi热点
问答有没有API来打开/关闭WiFi HotSpot在Android上编程? 我应该打什么方法打开/关闭? 更新:有这个选项,启用HotSpot,只是打开/关闭WiFi,但这不是一个很好的解决方案.::使 ...
1
如何以编程方式关闭/取消/关闭系统对话框(Android)
问答我有一个应用程序可以进行USSD调用,但在所有USSD调用之后,我得到了一个结果对话框的对话框. 我知道可以忽略这个对话框,因为"USSD Checker"应用程序执行此操作,他们 ...
1
在android中,如何以编程方式关闭屏幕?
问答我试图以编程方式关闭我的屏幕. 我试过以下方法: WindowManager.LayoutParams params = getWindow().getAttributes(); params.scr ...
android – 如何以编程方式关闭应用程序?
问答我正在寻找完全关闭我的应用程序的按钮的代码. 我试过谷歌的一些东西,但我的应用程序仍然在后台运行.我需要完全关闭它.有代码可以做到这一点吗?::为什么你需要真正关闭你的应用程序?假设它只是一个普通的应 ...
2
以编程方式关闭Android手机
问答我们可以以编程方式关闭Android手机吗? 第二个问题:如何在Android中锁定和解锁屏幕? 我使用以下代码段,但它不适合我. KeyguardManager keyguardManager = ...
1
Android 4.1.2如何以编程方式关闭GPS
问答我试图通过代码打开GPS.以下是我用过的代码. String provider = Settings.Secure.getString(context.getContentResolver(),Set ...
1
如何在android中以编程方式关闭所有正在运行的app?
问答我想在android中关闭所有正在运行的应用程序,我也希望通过关闭所有正在运行的应用程序获得免费的内存数量. 怎么做.::您只能杀死自己的应用,例如在同一进程中运行或具有相同userID的那些.除非设 ...
1
以编程方式关闭Android设备
问答我试图通过我的程序关闭Android设备.它实际上被关闭但它重新启动.我希望手机不要再自动重启.我怎样才能做到这一点?::过去曾在StackOverflow上询问过这个问题.有效的答案是您需要DEVI ...
1
如何以编程方式关闭android手机?
问答是否可以以编程方式关闭移动设备. 没有使用su命令..::您可以使用PowerManager使其重新启动(这并不能保证它会重新启动 – 操作系统可能会取消它): http://developer.an ...
1
java – 可以在Android中以编程方式关闭静音模式吗?
问答是否可以在Android中以编程方式关闭静音模式?::为您解决 AudioManager am; am= (AudioManager) getBaseContext().getSystemServic ...