2013-09-30 41 views
0

我已经实现了一个带有4个选项卡的FragmentPagerAdapter,并且我已经将一个片段关联到它们中的每一个。的问题是,我无法与它们所包含的元件相互作用,我尝试以下:与来自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; 
    } 

此方法是在从“片段”和负载的布局中的一个继承的类,具有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; 
    } 

的问题是,该方法的新型ImageAdapter(上下文)'接收作为参数的变量类型上下文加载在方法“newImageView(上下文) '它需要这种类型的变量并传递'this'这个变量是类型Fragment而不是Context,通过失败,我该如何解决?

在此先感谢。

回答

0

当你从一个充气视图访问任何插件,你必须让他们对于该只查看

改变这一行

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

这个

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

评论我有关结果

+0

好,很好。现在它可以工作。 你说过很多逻辑,我不知道我是否会注意到,非常感谢。 – KryNaC