Android 如何访问GridView的所有子元素?
我有一个Android 如何访问GridView的所有子元素?,android,gridview,Android,Gridview,我有一个GridView显示“带文本覆盖的图标”项目。 在一个特定的事件中,我想迭代所有这些项目并更改文本。但是如何获得对侦听器之外的那些项目的引用呢 我是否可以执行以下操作: view.findAllViewById(R.id.itemtext)?我知道findAll()不存在 item_view.xml: <RelativeLayout> <ImageView /> <TextView android:id="@+id/itemtext" /&g
GridView
显示“带文本覆盖的图标”项目。
在一个特定的事件中,我想迭代所有这些项目并更改文本。但是如何获得对侦听器之外的那些项目的引用呢
我是否可以执行以下操作:
view.findAllViewById(R.id.itemtext)代码>?我知道findAll()不存在
item_view.xml:
<RelativeLayout>
<ImageView />
<TextView android:id="@+id/itemtext" />
</RelativeLayout>
main.xml:
<LinearLayout>
<GridView android:id="@+id/simpleGridView" />
</LinearLayout>
代码
GridView grid=(GridView)findViewById(R.id.simpleGridView);
grid.setAdapter(…)//内部适配器:通过R.layout.item_视图为项目充气
grid.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
TextView项=((TextView)view.findViewById(R.id.itemtext));
item.setText(“某些单击文本”);
}
});
问题:如何访问所有可用的R.id.itemtext
元素并遍历它们?因为我没有提到它们。1。子视图
如果您真的想访问R.id.itemtext
视图,您可能可以将GridView
用作视图组(它扩展了它),对其子项进行迭代,并为每个子项找到findViewById(R.id.itemtext)
:
for (int i = 0; i < grid.getChildCount(); i++) {
View child = getChildAt(i);
View itemText = child.findViewById(R.id.itemtext);
...
}
如果要获取所有textview ref,您想做什么?通知您的适配器这样做
for (int i = 0; i < grid.getChildCount(); i++) {
View child = getChildAt(i);
View itemText = child.findViewById(R.id.itemtext);
...
}
int first = grid.getFirstVisiblePosition();
int last = grid.getLastVisiblePosition();
for(int i=first; i<=last; ++i){
Object item = grid.getItemAtPosition(); // You should probably cast to your adapter's item type
}