2012-04-06 4 views
1

나는 헤더 텍스트를 설정하는 방법을 포함하는 추상 클래스가 있습니다. 0x7f040001 같은 추상적 인 getHeaderStringID() 반환 정수를 오버라이드 (override)이 순간 방법에서안드로이드 문자열 추출

TextView header = (TextView) findViewById(R.id.hTitle); 
header.setText(getString(this.getHeaderStringID())); 

: 그것은 것 같습니다. 내가 할 수있는 -

이 내가 자바에 새로운 해요 원하는 경우 getHeaderStringID는 "sAboutHeader"와 같은 문자열을 반환에서

header.setText(getString(R.string.!getHeaderStringID!)); 

: 1 나는 이것을 달성하기 위해 연결을 활용하는 방법 또는 다소 유사한 존재 여부 궁금 헤더 객체를 없애라. 만약 내가 그렇게하지 않으면, eclipse validator는 적절한 메소드가 발견되지 않고 app을 실행시키지 못한다고 말한다.

try { 
     Field idField = R.String.class.getDeclaredField(getHeaderStringID()); 
     int value = idField.getInt(idField); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return -1; 
    } 

값 변수가에는 getString() 함수의 입력으로 제공 될 수있다 : 내가 제대로 이해하면

답변

1

, 난 당신이 반사를 사용해야한다고 생각합니다.

+0

이제는 작동하지만 정수를 반환합니다. 내가하고 싶은 일은 각각의 서브 클래스로 설정하는 것이다. ** string ** 식별자. header.setText (getString (R.string. 여기에는 R.string에 내 문자열 식별자를 추가하는 마술이있다.)); –

+0

R.string에 고유 한 문자열을 지정하면 해당 문자열도 정수를 반환합니다. – Mark268