Android : xml 리소스의 정수


110

문자열 값에 액세스하는 것과 동일한 방식으로 정수 값에 액세스하려면 XML 리소스를 수정해야하거나 어떤 XML 파일을 만들어야 R.string.some_string_resource합니까?

예를 들어, 내가 말하고 싶은 코드에서 :

ProgressDialog progressBar = new ProgressDialog(getContext());
progressBar.setMax(getInteger(R.integer.maximum));

가능할까요?

답변:


263

예, 가능합니다. 다음과 같이 보일 것입니다.

  1. /res/values/integers.xml이라는 폴더에 xml 리소스 파일을 만듭니다 .

    원하는 이름을 자유롭게 지정할 수 있지만 분명한 이름을 선택하십시오.

  2. 해당 리소스 파일에서 정수 값을 만듭니다.

    그러면 파일은 다음과 같습니다.

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. 다음과 같이 Java 코드에서 정수 값을 참조하십시오.

    와 약간 다르기 getString()때문에 약간 우회해야합니다.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);

1
그것은 정수가 아닌 이중 값입니다. 아마도 별도의 StackOverflow 질문에서 물어볼 수 있습니다.
Terry

1
@Terry 그래서 이것은 안드로이드에서 Integers를 사용하는 데 선호되는 방법이며, 일반적으로 코드 자체에서 하드 코딩합니다. 당신의 추천은 무엇입니까?
capt.swag

2
@ capt.swag 일반적으로 각 클래스의 코드에서 정수를 상수로 적절하게 하드 코딩합니다. 그러나 다른 레이아웃에 대해 다른 상수 (예 : 그리드의 열 수)가 필요한 경우 XML 파일을 사용하여 해당 상수를 화면의 다양한 너비에 맞게 조정합니다. 도움이되기를 바랍니다
rommex

1
XML에서 직접 정수 값을 사용할 수 있습니까?
Arbaz.in

1
@ capt.swag 예, 선호하는 방법입니다
Bato-Bair Tsyrenov

5

프로젝트에 integers.xml 파일을 추가해야합니다.

여기에 이미지 설명 입력

그리고

여기에 이미지 설명 입력

그리고 integers.xml에 이것을 추가하십시오

<integer name="maximum">5</integer>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.