android中单个片段内GridView之间的通信

android中单个片段内GridView之间的通信,android,android-fragments,android-gridview,Android,Android Fragments,Android Gridview,我有一个使用Android支持框架的ViewPager,它加载了三个片段。用户可以通过滑动在它们之间导航 第二个片段包含两个GridView,每个GridView都使用适配器填充了按钮 这两个GridView被命名为(XML)左按钮和右按钮。左侧按钮由扩展BaseAdapter的CategoryAdapter控制,右侧按钮由扩展BaseAdapter的ItemAdapter控制 我遇到的问题是,当用户单击CategoryAdapter中的按钮时,我希望在ItemAdapter上调用notifyD

我有一个使用Android支持框架的ViewPager,它加载了三个片段。用户可以通过滑动在它们之间导航

第二个片段包含两个GridView,每个GridView都使用适配器填充了按钮

这两个GridView被命名为(XML)左按钮和右按钮。左侧按钮由扩展BaseAdapter的CategoryAdapter控制,右侧按钮由扩展BaseAdapter的ItemAdapter控制

我遇到的问题是,当用户单击CategoryAdapter中的按钮时,我希望在ItemAdapter上调用notifyDataSetChanged(),然后在关联的GridView上调用invalidateViews()。因为这两个适配器是在同一个fragment MenuFragment中创建的,所以我正在努力寻找它们之间通信的最佳方式

我已经看到了很多关于片段之间、片段和活动之间通信的答案,等等。我试图从CategoryAdapter中获取对R.id.right_按钮的引用,但找不到解决方案(因为无法访问findViewById等)

然后,我阅读了一些答案,其中建议我需要在片段中创建一个方法,因此我在MenuFragment.class中尝试了以下方法:

public void updateRightGrid() {

//grab a reference to the right hand grid right_buttons
GridView rightButtons = (GridView) getView().findViewById(R.id.right_buttons);

    //get the adapter that is controlling right_buttons
ItemAdapter menuItemAdapter = (ItemAdapter) rightButtons.getAdapter();

    //tell this adapter that we have some new data, so please refresh
menuItemAdapter.notifyDataSetChanged();

//force the grid to refresh
rightButtons.invalidateViews();

}
问题是我仍然找不到从CategoryAdapter调用此方法的方法。我创建了一个实现OnClickListener的内部类,在public void onClick(视图v)中,我试图调用该片段的方法updateRightGrid()。我可以通过变量mContext访问上下文,但这似乎没有帮助


任何帮助都将不胜感激

适配器中可能有活动的上下文,因此可以在活动中创建一个方法,如:

//your activity code
public void notifyItemAdapter() {
    itemAdapter.notifyDataSetChanged() ;
}
然后在您的类别适配器中:

//adapter code
activityContext.notifyItemAdapter();

背景确实存在。我使用:
leftButtons.setAdapter(新的CategoryAdapter(this.getActivity())
传递上下文。但是,当我向FragmentActivity添加一个方法时,例如:
public void notifyItemAdapter(){Toast.makeText(getApplicationContext(),“msg msg”,Toast.LENGTH_SHORT).show()}
我在Eclipse中遇到以下错误:
方法notifyItemAdapter()类型上下文未定义-这是另一个片段吗?好的-我想我已经解决了-我需要转换上下文。因此,我最终调用了以下方法:
((MyFragmentActivity)mContext).notifyItemAdapter()-到目前为止似乎还可以。