Android 与碎片PageRadapter中的元素交互
我已经实现了一个带有4个选项卡的FragmentPagerAdapter,并且我已经将一个片段关联到每个选项卡。问题是我无法与它们包含的元素交互,我尝试了以下方法:Android 与碎片PageRadapter中的元素交互,android,fragmentpageradapter,Android,Fragmentpageradapter,我已经实现了一个带有4个选项卡的FragmentPagerAdapter,并且我已经将一个片段关联到每个选项卡。问题是我无法与它们包含的元素交互,我尝试了以下方法: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, containe
@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)”接收一个变量类型的上下文作为参数,以加载到方法“newImageView(context)”中,该方法需要这种类型的变量,并传递“this”该变量是类型片段,但不是上下文,如果失败,我如何修复
提前感谢。当您从膨胀视图访问任何小部件时,您必须仅从该视图获取它们 换行
ImageView img = (ImageView)findViewById(R.id.image);
对此
ImageView img = (ImageView) view.findViewById(R.id.image);
给我评论一下结果好的,很好。现在它起作用了。你说得很有道理,我不知道我是否会注意到,非常感谢。