Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 与碎片PageRadapter中的元素交互_Android_Fragmentpageradapter - Fatal编程技术网

Android 与碎片PageRadapter中的元素交互

Android 与碎片PageRadapter中的元素交互,android,fragmentpageradapter,Android,Fragmentpageradapter,我已经实现了一个带有4个选项卡的FragmentPagerAdapter,并且我已经将一个片段关联到每个选项卡。问题是我无法与它们包含的元素交互,我尝试了以下方法: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, containe

我已经实现了一个带有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)”接收一个变量类型的上下文作为参数,以加载到方法“newImageView(context)”中,该方法需要这种类型的变量,并传递“this”该变量是类型片段,但不是上下文,如果失败,我如何修复


提前感谢。

当您从膨胀视图访问任何小部件时,您必须仅从该视图获取它们

换行

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

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

给我评论一下结果

好的,很好。现在它起作用了。你说得很有道理,我不知道我是否会注意到,非常感谢。