java – 循环遍历GroupView的所有子节点?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 循环遍历GroupView的所有子节点?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2247字,纯文字阅读大概需要4分钟。
内容图文
![java – 循环遍历GroupView的所有子节点?](/upload/InfoBanner/zyjiaocheng/709/eb1381d702ee4523aa864995258454d0.jpg)
这是我的代码:
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/choco.ttf");
ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content).getRootView();
for(int i = 0; i < rootView.getChildCount(); i++)
{
View child = rootView.getChildAt(i);
Log.d("menfis", child.toString());
if(child != null)
if(child.getClass() == TextView.class)
((TextView) child).setTypeface(font);
}
这是我的XML页面:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_page"
android:gravity="center_horizontal" >
<ImageView
android:id="@+id/imgApplicationIcon"
android:src="@drawable/logo"
android:layout_width="fill_parent" android:layout_height="wrap_content"/>
<TextView
android:layout_marginTop="40dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:textColor="@color/red"
android:lines="2"
android:layout_marginRight="30dip"
android:text="test1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="30dip"
android:textColor="@color/red"
android:lines="2"
android:text="test2" />
</LinearLayout>
问题是我只能在LogCat控制台上得到它:
09-20 14:34:27.264: DEBUG/menfis(12251): android.widget.LinearLayout@40523820
为什么我没有得到TextViews的引用?
解决方法:
您需要递归遍历View树.目前,您只列出根视图的子项.
换句话说,你需要这样的东西:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/choco.ttf");
ViewGroup rootView = (ViewGroup) findViewById(android.R.id.content).getRootView();
applyFontRecursively(rootView, font);
}
void applyFontRecursively(ViewGroup parent, Typeface font)
{
for(int i = 0; i < parent.getChildCount(); i++)
{
View child = parent.getChildAt(i);
if(child instanceof ViewGroup)
{
applyFontRecursively((ViewGroup)child, font);
}
else if(child != null)
{
Log.d("menfis", child.toString());
if(child.getClass() == TextView.class)
{
((TextView) child).setTypeface(font);
}
}
}
}
内容总结
以上是互联网集市为您收集整理的java – 循环遍历GroupView的所有子节点?全部内容,希望文章能够帮你解决java – 循环遍历GroupView的所有子节点?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。