Android 遍历布局中的视图并更改字体
我想知道是否有一种方法可以遍历布局中的所有视图,并更改所有包含文本的视图(即TextView、CheckBox、EditText等)的字体。我有一个布局,我称之为setContentView(),我想知道是否有一种简单的方法可以做到这一点 我可以使用findviewbyd()完成并手动完成这项工作,但我更希望有一种简单的方法来遍历它们 谢谢,Android 遍历布局中的视图并更改字体,android,layout,view,typeface,Android,Layout,View,Typeface,我想知道是否有一种方法可以遍历布局中的所有视图,并更改所有包含文本的视图(即TextView、CheckBox、EditText等)的字体。我有一个布局,我称之为setContentView(),我想知道是否有一种简单的方法可以做到这一点 我可以使用findviewbyd()完成并手动完成这项工作,但我更希望有一种简单的方法来遍历它们 谢谢, -克拉克-也许这会让你开始: protected void changeFonts(ViewGroup root) { Typeface
-克拉克-也许这会让你开始:
protected void changeFonts(ViewGroup root) {
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/comicsans.ttf");
for(int i = 0; i <root.getChildCount(); i++) {
View v = root.getChildAt(i);
if(v instanceof TextView ) {
((TextView)v).setTypeface(tf);
} else if(v instanceof Button) {
((Button)v).setTypeface(tf);
} else if(v instanceof EditText) {
((EditText)v).setTypeface(tf);
} else if(v instanceof ViewGroup) {
changeFonts((ViewGroup)v);
}
}
}
受保护的void changeFonts(视图组根目录){
Typeface tf=Typeface.createFromAsset(getAssets(),“font/comicsans.ttf”);
对于(int i=0;我做到了,谢谢!我有一个带有嵌套布局的布局,我只调用了changeFonts()这篇文章还解决了一个类似的问题,并解释了递归方法:聪明的代码应该立即递增,如果语句进行递归搜索,+1Button和EditText是TextView的子类,所以我认为你永远不会转换为Button或EditText。