我有一个 gridview,其中每个项目都有两个元素,第一个是图像,第二个是标题,标题在应用程序启动时是不可见的,但我在网格外有一个按钮查看当我单击它时,我想将项目标题的可见性更改为可见,我的问题是我无法访问 GridView 中每个项目的每个标题。当我在 Activity 中的独立按钮的 onClick 方法中设置标题 (TextView) 的可见性时,它仅更改 GridView 中第一个项目的可见性!
这个草图代表我的界面,所以标题在开始时是不可见的,但是当我点击“SetVisibilityButton”时,我想将它们设置为可见:
Image1 Image2 Image3
Title1 Title2 Title3
Image4 Image5 Image6
Title4 Title5 Title6
Image7 Image8 Image9
Title7 Title8 Title9
----------------------------
SetVisibilityButton
____________________________
我在 oncreate() Activity 中设置 GridView :
favorGrid = (GridView) findViewById(R.id.favorGrid);
favorGrid.setAdapter(adapter);
在我的 ImageAdapter 类中,这是我的 getView() 方法:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View MyView = convertView;
/*we define the view that will display on the grid*/
//Inflate the layout
LayoutInflater li = getLayoutInflater();
MyView = li.inflate(R.layout.favor_item, null);
// Add The Text!!!
TextView tv = (TextView)MyView.findViewById(R.id.title);
tv.setText(mTitles[position]);
// Add The Image!!!
ImageView iv = (ImageView)MyView.findViewById(R.id.favor_item_image);
iv.setImageResource(mThumbIds[position]);
return MyView;
}
为了从我的主要 Activity 中获取标题 TextView 并设置他的可见性,我尝试了:
TextView title = (TextView) findViewById(R.id.title);
title.setVisibility(View.VISIBLE);
并尝试过:
// gv is the gridview (R.id.gridview)
TextView title = (TextView)gv.findViewById(R.id.title);
title.setVisibility(View.VISIBLE);
并尝试过:
LinearLayout layout = (LinearLayout) findViewById(R.id.gridLayout);
TextView title = (TextView)layout.findViewById(R.id.title);
title.setVisibility(View.VISIBLE);
但是所有这些解决方案都只为 GridView 中的第一个元素设置可见性。
我花了很多时间解决这个问题,但我还没有找到解决方案,请问有人可以帮我解决吗 提前谢谢你
最佳答案
这很简单:
GridView mGridView (Your object instance)
final int size = mGridView.getChildCount();
for(int i = 0; i < size; i++) {
ViewGroup gridChild = (ViewGroup) mGridView.getChildAt(i);
int childSize = gridChild.getChildCount();
for(int k = 0; k < childSize; k++) {
if( gridChild.getChildAt(k) instanceof TextView ) {
gridChild.getChildAt(k).setVisibility(View.GONE);
}
}
}
关于android - 如何访问每个 GridView 项的特定元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944326/