2014-02-12 4 views
0

R.java 파일 내에 선언 된 연속 요소 ID가 있습니다. 이제는 for 사이클을 사용하여 각각을 채울 필요가 있으므로 id의 각 반복 값을 증가시켜야합니다. 나는 이것을 작성했습니다 :R.id 파일 요소의 16 진수 값 증가

int current_id = R.id.button00; 
for (int i = 0; i < values.length; i++) { 
    TextView to_fill = (TextView) (getActivity().findViewById(current_id)); 
    to_fill.setText(String.valueOf(values[i])); 
    current_id++; 
} 

그러나이 방법으로 current_id가 올바르게 증가하지 않습니다. 어떻게하면됩니까?

답변

1

R에서 생성 된 ID가 순차적이거나 특정 순서로 생성된다는 보장은 없습니다.

<array name="button_id_array"> 
    <item>@id/button00</item> 
    <item>@id/button01</item> 
    <item>@id/button02</item> 
</array> 

는 그런 다음과 같이 코드에 액세스 할 수 있습니다 : 내가 지금처럼 배열 자원에 ID를 넣어 추천

int[] ids = getResources().getIntArray(R.array.test); 
+0

ID가 정렬되고, 그것은 뭔가 같은 : button00 = 0x7f040038; public static final int button01 = 0x7f04003a; public static final int button02 = 0x7f04003c; public static final int button03 = 0x7f04003e; public static final int button10 = 0x7f040040; 공공 정적 final int button11 = 0x7f040042; – giozh

+1

가장 먼저주의해야 할 점은 코드에 기록한대로 1 씩 증가하지 않는다는 것입니다. 코드가 2 씩 증가합니다. 다시 말하지만 ID 생성 메커니즘에 취약하기 때문에이 작업을 시도하지 말 것을 적극 권장합니다. 너는 통제 할 수 없다. –

+1

하드 ID 번호를 예측할 수 없게 증가시킬뿐만 아니라 시퀀스를 새로운 빌드간에 변경할 수 있습니다. 나는 Tanis와 여기에 강하게 동의한다. 비록 당신이 "일하는"그것을 얻더라도, 나중에 작동 할 아무 보증도 없다. – Geobits