我有一个GridView放在ViewPager的布局中(我不确定这是否有所不同)。
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()方法的调用吗?我该如何解决这个问题?
我还不太了解Fragments如何与ViewPager一起使用,所以如果这个解决方案涉及切换到基于Fragment的方法,希望有人能详细说明一下。
GridItemAdapter
中的getView
函数?如果可以,请告诉我。 - Sherif elKhatib