与FragmentPagerAdapter中的元素交互

时间:2013-09-30 07:36:04

标签: android fragmentpageradapter

我已经实现了一个带有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'变量是类型片段但不是上下文,由于什么失败,我如何解决?

提前致谢。

1 个答案:

答案 0 :(得分:0)

当您从膨胀的视图访问任何窗口小部件时,您必须尊重该视图

更改此行

 ImageView img = (ImageView)findViewById(R.id.image);

到这个

 ImageView img = (ImageView) view.findViewById(R.id.image);

评论我的结果