2012-05-07 2 views
1

더 많은 코드 - 생성 된 문자열 R.string.c#### - c.####은 setText로 실행하려는 사전 정의 된 문자열입니다.Filepath로 사용할 수있는 것보다 많은 문자열 만들기 - 이클립스/Android

int Q1 = question1.getmCounter(); 
int Q2 = question2.getmCounter(); 
int Q3 = question3.getmCounter(); 
int Q4 = question4.getmCounter(); 

int qTotal = Q1 + Q2 + Q3 + Q4; 
String Test5 = "R.string.c" + qTotal; 

이것은 내가 지금 먹고 싶은 "문자열"을 얻는 방법입니다.

textOut = (TextView) findViewById(R.id.ChmpNametxt); 
    textOut.setText(Test5); 

여기 내가 먹이를주고 싶습니다.

답변

2

"getIdentifier"메소드를 사용하여 리소스에 액세스 할 수 있습니다. 패키지의 모든 리소스에 액세스 할 수 있습니다.

getResources().getIdentifier("c1123", "string", this.class.getPackageName()); 

첫 번째 인수에는 모든 변수를 전달할 수 있습니다.이 값은 문자열 이름에 해당합니다. 두 번째 인수는 검색 할 리소스 (문자열, 드로어 블, 레이아웃 .....)를 지정합니다. 세 번째 인수는 응용 프로그램의 패키지 이름입니다. "R"이 사용되는 것을 지정합니다. 귀하의 경우, 귀하는 귀하의 신청서에 포함 된 자료 ("R")를 살펴보고 싶습니다.

편집 :이 INT는 다음의 매개 변수로 사용되어야한다 :이 방법은 R.string.c1123

exemple를 들어, 당신이 찾고있는 리소스의 ID에

Edit2가 대응 int를 반환 setText 함수.

그래서 전체 코드는 다음과 같습니다

int resId = getResources().getIdentifier("c" + qTotal, "string", this.class.getPackageName()); 
textOut.setText(resId); 
관련 문제