我已经实现了一个带有4个选项卡的FragmentPagerAdapter,并且我已经为每个选项卡关联了一个片段。问题是我无法与它们包含的元素进行交互,我尝试了以下内容:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment1, container, false);
// Some codes for layout such as findViewById
ImageView img = (ImageView)findViewById(R.id.image);
img.setOnClickListener(new ImageView.OnClickListener() {
public void onClick(View v) {
Log.i("Fragment", "This is a test");
}
});
return view;
}
此方法在继承自“Fragment”并加载其中一个布局的类中,具有4个与此类型相同的类,每个选项卡一个。
方法'findViewById'失败,但如果我不能把它放在那里,我把它放在哪里?
非常感谢。
继续这个例子我出现了一个新问题。 其中一个视图为GridView加载如下图像:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.init, container, false);
final GridView grid = (GridView)view.findViewById(R.id.myGrid);
grid.setNumColumns(2);
grid.setAdapter(new ImageAdapter(this));
return view;
}
问题是方法'new ImageAdapter(context)'接收一个变量类型Context作为参数加载方法'newImageView(context)'它需要这种类型的变量并且传递'this'变量是类型片段但不是上下文,由于什么失败,我如何解决?
提前致谢。
答案 0 :(得分:0)
当您从膨胀的视图访问任何窗口小部件时,您必须尊重该视图
更改此行
ImageView img = (ImageView)findViewById(R.id.image);
到这个
ImageView img = (ImageView) view.findViewById(R.id.image);
评论我的结果