기본 설정 관리자는 항상 기본값을로드합니다.

mvd3

환경 설정 관리자를 사용하여 일부 정수 및 부울 값을 저장합니다. SettingsPreferences 클래스를 만들었습니다.

public class SettingsPreferences {

    private Context mContext;

    public SettingsPreferences(Context context) {
        this.mContext = context;
    }

    public boolean isNull() {
        if (PreferenceManager.getDefaultSharedPreferences(mContext) == null) {
            return true;
        } else {
            return false;
        }
    }

    public void setBoolean(String name, boolean value) {
        PreferenceManager.getDefaultSharedPreferences(mContext).edit()
                .putBoolean(name, value).apply();
    }

    public void setInt(String name, int value) {
        PreferenceManager.getDefaultSharedPreferences(mContext).edit()
                .putInt(name, value).apply();
    }

    public boolean getBoolean(String name, boolean defaultValue) {
        return PreferenceManager.getDefaultSharedPreferences(mContext)
                .getBoolean(name, defaultValue);
    }

    public int getInt(String name, int defaultValue) {
        return PreferenceManager.getDefaultSharedPreferences(mContext).getInt(
                name, defaultValue);
    }}

Main 클래스의 onCreate 메서드에서 기본값을 추가합니다.

mSettingsPreferences = new SettingsPreferences(getApplicationContext());
if(mSettingsPreferences.isNull() == true) {
    mSettingsPreferences.setBoolean("MAX", 1);
    mSettingsPreferences.setBoolean("PROGRESS", 1);
}

조각 클래스에서 해당 데이터를로드하고 진행률 표시 줄에 표시해야합니다. 다음은 코드입니다.

Thread t = new Thread() {
   public void run() {
     try {
       sleep(100);
       SettingsPreferences sett = new SettingsPreferences(mContext);
       mProgBar.setMax(sett.getInt("MAX", 2));
       mProgBar.setProgress(sett.getInt("PROGRESS", 1));

     } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
};
t.start();

컨텍스트가 정의되어 있으며 진행률 표시 줄도 확인했지만 매번 기본값을로드합니다. 무엇이 문제입니까?

Marcinj

isNull ()은 항상 false를 반환한다고 가정합니다.

PreferenceManager.getDefaultSharedPreferences(mContext)

반환하지 않습니다 null, 적어도 나는 그런 경우를 본 적이 없다. 이렇게하면 MAX 및 PROGRESS 값을 초기화하지 않고 결국 기본값을 읽습니다.

SharedPreferences.contains 메서드를 사용하여 MAX가 있는지 확인한 다음 초기화하지 않을 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

node-config는 항상 기본 설정을 반환합니다.

기본 설정을 허용하지 않는 선택 상자,로드 / 바인딩은 값을 첫 번째 항목으로 재설정합니다.

기본 설정을 허용하지 않는 선택 상자,로드 / 바인딩은 값을 첫 번째 항목으로 재설정합니다.

Laravel은 항상 기본값을 설정합니다.

변수는 함수에서 항상 기본값으로 재설정됩니다.

기본 인터프리터는 항상 재설정됩니다.

Webkit은 <details> 상위 항목을 기본 상자 모델로 재설정합니다.

Symfony는 항상 경로 기본값을 포함합니다.

'출력 디렉터리로 복사'의 기본 옵션을 '항상 복사'로 설정합니다.

JavaFX TextFlow는 기본 텍스트 색상을 설정합니다.

Swift 스위치 케이스는 항상 기본 케이스로 기본 설정됩니다.

공유 환경 설정은 항상 기본값을 반환합니다.

공유 환경 설정은 항상 기본값을 반환합니다.

SQL - 두 쿼리를 결합하고 일치하는 항목이 없을 때 기본값도 설정합니다.

내 sharedPreference는 항상 기본값을 반환합니다.

getPreferences는 항상 기본값을 반환합니다.

텍스트 상자 기본값을 0으로 설정

SQLAlchemy는 한 열의 기본값을 다른 열의 기본값으로 설정합니다.

XSLT는 선택한 항목을 사용할 수 없을 때 기본값을 설정합니다.

Argo Workflow는 항상 기본 서비스 계정을 사용합니다.

메이트 터미널은 항상 최대화 된 상태로 열리고 정의 된 기본 프로필에 지정된 크기로 열리길 원합니다 (기본값 설치 아님).

Sequelize는 NOT NULL 열의 기본값을 자동으로 설정합니다.

기본 설정에 저장된 위치는 항상 null입니다.

상태 변수는 기본값 'false'를 설정했지만 'undefined' 값을 표시합니다.

기본 설정 항목을 클릭하면 다이얼러 또는 기본 발신자 앱으로 이동합니다.

기본 사용 상태는 isLoading을 값을 false로 설정하는 대신 읽기 전용으로 반환합니다.

항목 태그와 함께 드롭 다운에서 기본값을 공백으로 설정하는 방법

redux 디스패치는 다른 상태를 기본값으로 재설정합니다.

Angular : 항목의 속성이없는 경우 ng-repeat에서 기본값을 설정합니다.

TOP 리스트

  1. 1

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  2. 2

    Matlab의 반복 Sortino 비율

  3. 3

    Python의 csv 파일에서 첫 번째 열 삭제

  4. 4

    개체 참조가 개체의 인스턴스로 설정되지 않았습니까? (예외 오류 ~ ASP.NET MVC)

  5. 5

    atob은 인코딩 된 base64 문자열을 디코딩하지 않습니다.

  6. 6

    EventEmitter <string>의 컨텍스트 'this'가 Observable <string> 유형의 'this'메서드에 할당되지 않았습니다.

  7. 7

    병합 셀을 사용하여 워크 시트의 데이터 필터링

  8. 8

    PhpStorm 중단 점에서 변수 값을 볼 수 없습니다.

  9. 9

    jQuery에서 이벤트 핸들러를 제거하는 가장 좋은 방법은 무엇입니까?

  10. 10

    `@ Transactional`이 있음에도 불구하고 이러한 데이터베이스 수정 사항이 롤백되지 않는 이유는 무엇입니까?

  11. 11

    ssh를 사용하여 원격에서 로컬로 파일 복사

  12. 12

    종속 사용자 정의 Lightning 선택 목록 Level2 및 Level3을 설정한 다음 Lightning 구성 요소에서 Level2를 재설정하지만 Level2 캐시 데이터가 저장됨

  13. 13

    2 개의 이미지를 단일 평면 이미지로 결합

  14. 14

    팝업처럼 위젯을 표시하는 방법

  15. 15

    [해결] 쿠키 설정 SameSite = Chrome / JSP, JAVASCRIPT에서 작동하지 않습니다.

  16. 16

    버튼 클릭을 기반으로 특정 CSS 클래스를 추가하는 방법은 무엇입니까?

  17. 17

    React 구성 요소가 자동으로 초기 상태로 다시 렌더링됩니다.

  18. 18

    연결된 서버 쿼리는 작동하지만 동일한 OPENQUERY는 "sys.servers에서 서버 'SERVER'를 찾을 수 없습니다.

  19. 19

    파일 2의 파일 1에서 동일한 줄을 조건으로 바꿉니다.

  20. 20

    아이디어 Intellij : 종속성 org.json : json : 20180813을 찾을 수 없음, maven에서 org.json 라이브러리를 가져올 수 없음

  21. 21

    상황에 맞는 메뉴 색상

뜨겁다태그

보관