비슷한 것을 묻는 getIdentifier에 대한 많은 질문이 있음을 알고 있습니다. 나는 많은 것들을 시도했지만, 나는 나의 결과로 0을 계속 얻는다. 나는 단편을 가지고 있으며 그 단편에는 표가 들어 있으며 표는 "빈"보기로 가득 차 있습니다. 보기를 찾고 꽤 간단한 switch 문 (명확성을 위해 제외됨)에서 설정되는 행 및 col 변수를 기반으로 채우기를 시도하고 있습니다. 나는 방법이있다 :안드로이드 getIdentifier 메소드는 조각에 0을 반환합니다.
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
int row;
int col;
... methodology that sets row and count ...
String idString = "R.id.row" + row + "_col" + col;
int id = getResources().getIdentifier(idString, "id", activity.getBaseContext().getPackageName());
int rID = R.id.row1_col1;
Log.d(TAG, "id = " + id + " and rID = " + rID + " with " + idString +
" for row " + row + " x col " + col);
}
여기서 int id는 행/col에 기반한보기의 리소스 ID로 설정되어 있다고 가정한다. 내가 ROW1을 테스트하는 경우 는 COL1 나는 다음과 같은 로그 출력
id = 0 and rID = 2131034203 with idString R.id.row1_col1 for row 1 x col 1
이 자원 내 행 안부 변수가 나의 방법에 적절하게 설정지고 있다는 있다는 것을, 내 캐릭터가 설정되어 있는지 알려줍니다를 얻을 getIdentifier 사용에 대한 권리 (내가 아는 한). 그렇다면 왜 내가 행과 열을 테스트했는지에 상관없이 항상 0이되는 이유는 무엇입니까?
변수가없는 명시 적 문자열을 사용하여 getResources()를 activity.getResources()로 변경하면서 "id"를 다른 유형으로 변경하려고 시도했습니다. 아무 것도 작동하지 않는 것 같습니다.
'getActivity(). getPackageName() '을 사용하여'activity.getBaseContext(). getPackageName()'을 변경해보십시오. –
@shayan pourvatan 응답 해 주셔서 감사합니다. 나는 변화와 같은 결과를 얻는다. – zgc7009