我有一个ViewPager(我不知道如果有差别)的布局里面一个GridView。ViewPager + GridView控件onItemClick
inside SampleAdapter for ViewPager{
@Override
public Object instantiateItem(ViewGroup container, int position) {
View page = null;
if (position == 0) {
page = getLayoutInflater().inflate(R.layout.layoutone,
container, false);
} else {
page = getLayoutInflater().inflate(R.layout.layouttwo,
container, false);
GridView grid = (GridView) page.findViewById(R.id.gridview);
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
//switch to another activity based on click event
}
});
grid.setAdapter(new GridItemAdapter(context)); //sets custom gridItemLayout
container.addView(page);
return (page);
}
}
我可以查看网格的罚款。自定义布局也按照我的GridAdapter工作。但是,我的点击事件没有被解雇。是因为instantiateItem()方法调用?我怎样才能解决这个问题?
我不太明白碎片如何与ViewPager工作还,所以如果这个解决方案涉及切换到基于片段的方法,这将会是巨大的,如果有人能够详细说明。
你可以包括你的'GridItemAdapter'的'getView'函数吗?让我知道你什么时候这样做 –
'getView'函数只是膨胀R.layout.mycustomlayout,但我会尽快发布它,只要我能回家。 – Kgrover