Я пытаюсь установить шрифт для всех TextView
, перебирая представления LinearLayout
и используя instanceof
.
Форма в настоящее время состоит из 4 TextView
's и one Button
.
Приведенный ниже код обнаруживает все View
s, даже Button
как TextView
?
/* Set fonts */
LinearLayout ll = (LinearLayout) findViewById(R.id.ll_screenincourse_wrapper);
for (int i = 0; i < ll.getChildCount(); i++) {
View v = ll.getChildAt(i);
if (v instanceof TextView) {
((TextView) v).setTypeface(Fonts.get3dDumbFont(this));
}
}
Если я регистрирую класс каждого представленияname возвращает TextView и Button, так что я знаю, что подбираются правильные элементы управления.
Проблема в том, что Button и TextView устанавливаются шрифты, а мне нужны только TextView
.
Я нашел обходной путь, который заключается в следующем, но я заинтригован тем, почему приведенный выше код не работает должным образом.
/* Set fonts */
LinearLayout ll = (LinearLayout) findViewById(R.id.ll_screenincourse_wrapper);
for (int i = 0; i < ll.getChildCount(); i++) {
View v = ll.getChildAt(i);
if (v.getClass().getName().contains("TextView")) {
((TextView) v).setTypeface(Fonts.get3dDumbFont(this));
}
}
Это потому, что кнопки и TextView имеютТип View
?Если это так, что будет правильным способом сделать это?
Любая помощь приветствуется, спасибо.Рикки.