【问题标题】:Android set default value of ListPrefrence dynamically created and filledAndroid设置ListPrefrence的默认值动态创建和填充
【发布时间】:2017-01-07 20:04:31
【问题描述】:

我需要为动态创建的 ListPreference 设置默认值。它是动态创建的,因为它是相机对焦模式的偏好,并且每个设备都可以有不同的对焦模式集。 listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE); 不起作用,或者 How to set the Default Value of a ListPreference 在此链接中接受的答案不起作用,而且它是不正确的,因为它会覆盖用户的选择。

    // Preview Focus Mode
    int indexContinuous = 0;
    if (focusModes != null && focusModes.size() > 0) {
        entries = new String[focusModes.size()];
        entryValues = new String[focusModes.size()];
        for (int i = 0; i < focusModes.size(); i++) {
            entryValues[i] = entries[i] = focusModes.get(i);
            if (entryValues[i].equals(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
                indexContinuous = i;
            }
        }

        listPreferenceFocusMode.setEntries(entries);
        listPreferenceFocusMode.setEntryValues(entryValues);

        if (listPreferenceFocusMode.getValue() == null) {
            listPreferenceFocusMode.setValueIndex(indexContinuous);
        }
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
            listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
        } else {
              listPreferenceFocusMode.setDefaultValue(Camera.Parameters.FOCUS_MODE_AUTO);
        }
    } else {
        listPreferenceFocusMode.setEnabled(false);
        listPreferenceFocusMode.setSummary("Focus Modes are not supported");
    }

我尝试使用listPreferenceFocusMode.getValue() 设置defaultValue 或获取值,但它也不起作用,因为listPreferenceFocusMode.getValue() 不是null。提前致谢。

【问题讨论】:

    标签: android android-preferences listpreference


    【解决方案1】:

    我使用布尔标志解决了它,以检查它是否是应用程序的第一次启动。如果是,则设置 listPreferenceFocusMode.setValueIndex(indexContinuous); 并设置 true 并将 isFirstStart 标志保存到 sharedPrefrences 以仅调用一次 setValueIndex 方法。如果listPrefrence 记住它是动态默认值但它没有记住会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多