이 시도 :
List<String> arStan = new ArrayList<String>();
arStan.add("wyniszczenie");
arStan.add("wychudzenie");
arStan.add("niedowaga");
for(String s : arStan) {
int myId = getResources().getIdentifier(s + "_zakres.bmi", "id", getPackageName());
TextView myTextView = (TextView)t.findViewById(myId);
// Do something with myTextView
}
을 당신이 그것을 할당이야 직후, 다음 배열이나 해시 테이블에 myTextView을 넣어 그들에 작용 이후에 오히려에 대한 텍스트 뷰 참조를 저장해야합니다.
Hashtable textViews = new Hashtable<String, TextView>();
List<String> arStan = new ArrayList<String>();
arStan.add("wyniszczenie");
arStan.add("wychudzenie");
arStan.add("niedowaga");
for(String s : arStan) {
int myId = getResources().getIdentifier(s + "_zakres.bmi", "id", getPackageName());
TextView myTextView = (TextView)t.findViewById(myId);
textViews.put(s + "_zakres.bmi", myTextView);
}
// When you need to get one of the TextViews:
TextView tv = textViews.get("niedowaga_zakres.bmi");
// Do something with tv.
리플렉션을 사용하지 않고. –
@Matt에 동의합니다. 또는 ArrayView 또는 TextViews 목록을 사용할 수 있습니다. 또는 enum이 키이고 관련 TextView가 값 인 Map입니다. –