Java Android GridView获取子项don';行不通
我想获取GridView子项,我使用下面的代码,但它不起作用Java Android GridView获取子项don';行不通,java,android,gridview,Java,Android,Gridview,我想获取GridView子项,我使用下面的代码,但它不起作用 mAppGridAdapter = new gridadapter(mContext, appPackageInfos); mAppManaGridView.setAdapter(mAppGridAdapter); if(mAppManaGridView.getCount()>0) {
mAppGridAdapter = new gridadapter(mContext, appPackageInfos);
mAppManaGridView.setAdapter(mAppGridAdapter);
if(mAppManaGridView.getCount()>0)
{
mAppManaGridView.setSelection(0);
Log.d("adan", "adan>" + mAppManaGridView.getCount());
Log.d("adan", mAppManaGridView.getFirstVisiblePosition() + ", " +mAppManaGridView.getLastVisiblePosition());
for(int visiblePosition = mAppManaGridView.getFirstVisiblePosition(); visiblePosition <= mAppManaGridView.getLastVisiblePosition(); visiblePosition++) {
View item = mAppManaGridView.getChildAt(visiblePosition);
// make something
Log.d("adan", "adan>" + item.getWidth()+"," +item.getHeight() );
}
}
我也尝试过这段代码,但返回项为null,它与nullPointerException一起崩溃
if(mAppManaGridView.getCount()>0)
{
mAppManaGridView.setSelection(0);
Log.d("adan", "adan>" + mAppManaGridView.getCount());
View item = mAppManaGridView.getChildAt(0);
// make something
Log.d("adan", "adan>" + item.getWidth()+"," +item.getHeight() );
}
你能帮我解决这个问题吗?这让我很困扰。getChildAt()返回GridView的子视图。子视图位置和数据位置不一样,因为AdapterViews回收和重用子视图。这样,适配器中可以有100项数据,gridview中只能有7个子视图
这是最基本的,你应该观看关于listview的google IO视频(他们描述的内容主要针对所有AdapterNews)
如果项目是动态生成的,那么如何获取GridView的项目大小?
if(mAppManaGridView.getCount()>0)
{
mAppManaGridView.setSelection(0);
Log.d("adan", "adan>" + mAppManaGridView.getCount());
View item = mAppManaGridView.getChildAt(0);
// make something
Log.d("adan", "adan>" + item.getWidth()+"," +item.getHeight() );
}