输出界面上所有resource-id相同的元素的文字
时间: 2024-09-11 10:10:45 浏览: 32
osgi-resource-locator-1.0.1-API文档-中文版.zip
在Android开发中,如果需要获取并显示界面中所有具有相同`resource-id`(通常称为ID)的控件的文本内容,你可以通过遍历`ViewGroup`下的所有子视图,并检查它们的`resource-id`是否匹配来进行。以下是一个简单的示例:
```java
// 获取当前Activity的根布局
View rootView = findViewById(R.id.activity_root);
// 获取所有resource-id为"example_id"的元素
List<TextView> viewsWithSameId = new ArrayList<>();
findViewsWithId(rootView, "example_id", viewsWithSameId);
private void findViewsWithId(View parent, String resourceId, List<View> views) {
if (parent instanceof TextView && ((TextView) parent).getId() == getResources().getIdentifier(resourceId, "id", getPackageName())) {
views.add((TextView) parent);
}
for (int i = 0; i < parent.getChildCount(); i++) {
View child = parent.getChildAt(i);
findViewsWithId(child, resourceId, views);
}
}
// 现在viewsWithSameId列表里存储了所有resource-id相同的TextView
for (TextView textView : viewsWithSameId) {
String text = textView.getText().toString();
// 打印或处理每个控件的文本
Log.d("Text", "Element text: " + text);
}
```
在这个例子中,我们首先从根布局开始搜索,然后递归地查找所有子视图,只有当找到的`TextView`的资源ID与指定的`resource-id`相同时,才会添加到列表中。
阅读全文