处理项目单击父片段

时间:2017-01-15 20:09:09

标签: android android-layout android-fragments android-recyclerview

在我的应用程序中,我有users.path(selectedUserOption.value)(说Fragment),其中包含ParentFragment我正在使用GridLayout使用{{}显示网格中的UI项目{1}}和GridLayoutManager类。此ViewHolder有2行4列。每个网格单元的数据存储在RecyclerAdapter类中,该类具有两个变量GridLayoutDataContentInformation类。

在此DataHeader用户界面下方,我有另一个DetailedInformation(说GridLayout)组件,该组件应根据Fragment中的选项进行更新。 DetailedFragment单元格中会显示GridLayoutDataHeader内会显示GridLayout

如何传递DetailedInformation内的网格项单击事件以更新DetailedFragment

提前致谢,

IamHuM

2 个答案:

答案 0 :(得分:1)

按照以下步骤,根据您自己的要求更改参数和代码。我只是给出了执行任务的步骤:

第1步:

在您的RecyclerView适配器中, 将构造函数更改为类似的内容并传递片段:

     public TestAdapter(Context context,ParentFragment parentFragment)
     {
    this.context=context;
    this.parentFragment=parentFragment;
     }

第2步: 将以下代码添加到Recycler View的onBindViewHolder()方法

 @Override
public void onBindViewHolder(TestHolder holder, final int position) {
    //Add other code here
    holder.itemView.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View view) {
               ((MainActivity)parentFragment.getActivity()).yourMethod();
         }
       }
   });

}

第3步: 在您的主活动中,您可以添加代码以更新详细的详细内容,如下所示:

  public void yourMethod()
  {
  Fragment reference = null;
            List<Fragment> fragmentList =getSupportFragmentManager().getFragments();
            for (int i = 0; i < fragmentList.size(); i++) {
                reference = fragmentList.get(i);
                if (reference != null && reference instanceof DetailedFragment) {
                    ((DetailedFragment) reference).methodToUpdateDetailedFragment();
                }
            }}
 }

第4步: 将方法更新为详细片段的UI,

 public void methodToUpdateDetailedFragment()
   {
   //Write your code to update UI here
   }

答案 1 :(得分:0)

example与您所描述的非常相似。希望它有所帮助