相关疑难解决方法(0)

Android:如何删除首选项屏幕中的边距/填充

我在设计偏好屏幕时遇到了非常奇怪的问题.虽然我没有给出任何布局余量,但是左边留有一些空间.

如下图所示: 在此输入图像描述

XML:

   <PreferenceScreen android:title="demo" >
       <CheckBoxPreference
           android:defaultValue="false"
            android:key="prefSync"`
            android:title="Auto Sync" />
    </PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我在屏幕上添加复选框首选项时做错了什么?

android preference checkboxpreference

55
推荐指数
7
解决办法
2万
查看次数

如何使用android.support.v7.preference库创建自定义首选项?

我想支持至少api 10,我希望能够很好地设置我的偏好,我希望能够有标题(或显示PreferenceScreens).似乎PreferenceActivity不完全支持AppCompat着色,不适合.所以我正在尝试使用AppCompatActivityPreferenceFragmentCompat.

public class Prefs extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null)
            getSupportFragmentManager().beginTransaction()
                    .replace(android.R.id.content, new PreferencesFragment())
                    .commit();
    }

    public static class PreferencesFragment extends PreferenceFragmentCompat {
        @Override public void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
        }

        @Override
        public void onDisplayPreferenceDialog(Preference preference) {
            // the following call results in a dialogue being shown
            super.onDisplayPreferenceDialog(preference);
        }

        @Override public void onNavigateToScreen(PreferenceScreen preferenceScreen) {
            // I can probably …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-preferences android-support-library

23
推荐指数
1
解决办法
1万
查看次数

有关PreferenceActivity的Android弃用方法警告

当我尝试使用Android的开发人员指南和教程使用"首选项"创建"设置活动"时,我收到警告,例如:

"不推荐使用PreferenceActivity类型的方法addPreferencesFromResource(int)"

对于代码中的这两行:

getPreferenceManager().setSharedPreferencesName(PREFS_NAME);
addPreferencesFromResource(R.xml.default_values);
Run Code Online (Sandbox Code Playgroud)

我知道这些只是警告,但是当我运行我正在设计的应用程序时,我想知道它们现在还是将来是否会引起任何问题.

public class DefaultValues extends PreferenceActivity {

    static final String PREFS_NAME = "defaults";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getPrefs(this);
        getPreferenceManager().setSharedPreferencesName(PREFS_NAME);
        addPreferencesFromResource(R.xml.default_values);
    }

    static SharedPreferences getPrefs(Context context) {
        PreferenceManager.setDefaultValues(context, PREFS_NAME, MODE_PRIVATE,
                R.xml.default_values, false);
        return context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
    }
}
Run Code Online (Sandbox Code Playgroud)

android deprecated preferenceactivity android-preferences sharedpreferences

11
推荐指数
2
解决办法
2万
查看次数

用(API 28)替换不推荐使用的getFragmentManager()方法?

我有一个正在开发的Android应用程序,最小sdk =21。在其中,我使用了一个自定义的PreferenceActivity,该自定义的PreferenceActivity依次调用了PreferenceFragment。但是,在最近更新到API 28之后,我注意到getFragmentManager()方法已被弃用。我浏览了相关的Android开发人员页面,了解到Fragment类已被弃用或类似的东西。为了清楚起见,我的PreferencesActivity类代码如下:

public class PreferencesActivity extends PreferenceActivity{
static int layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        boolean isDark = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("darkTheme", false);
        if (isDark) setTheme(R.style.AppTheme_Dark_NoActionBar_BlendStatusBar);
        layout = isDark? R.style.AlertDialogCustom_Dark: R.style.AlertDialogCustom;
        super.onCreate(savedInstanceState);
        // TODO: 08/09/2018 Deprecated
        getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferencesFragment()).commit();
}

    public static class PreferencesFragment extends PreferenceFragment {
        // Preferences code here...
    }
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-fragments fragmentmanager

5
推荐指数
1
解决办法
4188
查看次数

PreferenceActivity:getFragmentManager() 已被弃用

测试android.preference.PreferenceActivity 时,我收到以下警告:

警告:[deprecation] Activity 中的 getFragmentManager() 已被弃用

这就是我如何获得当前的句柄PreferenceFragment

FragmentManager fm = this.mActivity.getFragmentManager();
this.currentFragment = (PreferenceFragment) fm.getFragments().get(1);
Run Code Online (Sandbox Code Playgroud)

使用FragmentActivity.getSupportFragmentManager()显然不是一种选择。

我找到了PreferenceFragmentCompat,它将取代已弃用的PreferenceFragment.

但是有什么androidx替代品PreferenceActivity吗?

android android-preferences android-fragments deprecation-warning androidx

5
推荐指数
1
解决办法
3683
查看次数

Google Maps .getMap() deprecated

I am using Google Maps on my Android App. Before a gradle the new version of Google Play Services it works with the following code to get the Fragment:

GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
Run Code Online (Sandbox Code Playgroud)

自从我更新到版本 9.2.1 以来,.getMap() 是红色的(已弃用)。有没有新的做法来声明fragment?

谢谢你的每一个回应?

java maps android gradle

1
推荐指数
1
解决办法
5294
查看次数