我在 ViewPager 的布局中有一个 GridView (我不确定这是否有区别)。
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 工作。但是,我的点击事件没有被触发。是因为 instanceiteItem() 方法调用吗?我怎样才能解决这个问题?
我还不太明白 Fragments 如何与 ViewPager 一起工作,所以如果这个解决方案涉及切换到基于 Fragment 的方法,如果有人能详细说明,那就太好了。