如何使用自定义对话框从活动中的片段刷新recyclerview?

时间:2019-03-31 05:20:22

标签: android android-recyclerview alertdialog

因此,我有一个活动,其中有2个片段,一个片段包含firebase的数据,在活动内部,我有一个自定义对话框,用于使用rangeseekbar库对价格进行排序。我想做的是,如果我单击自定义对话框上的“是”按钮,将刷新片段中的recyclerview并按照我知道如何使用firebase中的方法对数据进行排序的方式对其中的数据进行排序{ {1}}和startAt

enter image description here

3 个答案:

答案 0 :(得分:0)

在片段中写一个对数据进行排序并从您的活动中调用方法的公共方法。

在您的Fragment

public void yourMethodName(){
//sort Code
}

在您的Activity

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.yourMethodName(); 

OR

ExampleFragment fragment = (ExampleFragment)fm.findFragmentByTag("yourTag");
fragment.yourMethodName(); 

答案 1 :(得分:0)

// You can create a call back Interface in your activity
  public interface OnSortOptionSelectedListener {
    public void onSortOptionClicked();
   }

 // Within your Activity
    OnSortOptionSelectedListener onSortOptionSelectedListener;

    Adapter adapter = new Adapter(getSupportFragmentManager());
    FragmentNameWithRecyclerView yourFragment = new FragmentNameWithRecyclerView();
    onSortOptionSelectedListener = (FragmentNameWithRecyclerView) yourFragment;
    adapter.addFragment(yourFragment, "SOME TITLE");
    viewPager.setAdapter(adapter);


  // whenever sort option is clicked
  onSortOptionSelectedListener.onSortOptionClicked();

 // Your Fragment with RecyclerView will implement this interface

    public class FragmentNameWithRecyclerView extends Fragment implements 
  OnSortOptionSelectedListener  
  {

   @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
  @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_layout, container, false);

    // Make sure you have the recyclerview initilialized properly here  

    return view;   
   }

   @Override
  public void onSortOptionClicked()
 {
 // Handle the logic to refresh the recyclerview here
 }

 }

答案 2 :(得分:0)

我建议您这样做

recyclerView.setAdapter(adapter) 
在您的主线程中,如onCreate中的

,由于您没有显示recyclerview所需的数据,因此您必须先使用虚拟数据对其进行设置,或者更可取的是,不显示它,而是显示首先会显示一个进度条,告诉用户尚未完成加载。

对数据进行排序后,您可以致电

adapter.notifyDataSetChanged().