Как я могу обновить представление переработчика из моего фрагмента внутри упражнения, используя пользовательский диалог? - PullRequest
1 голос
/ 31 марта 2019

Итак, у меня есть действие, содержащее 2 фрагмента, один фрагмент содержит данные из базы данных, а внутри действия у меня есть настраиваемый диалог для сортировки цены с использованием библиотеки rangeseekbar. Что я хочу сделать, так это то, что если я нажму кнопку «Да» в своем настраиваемом диалоговом окне, то recyclerview из фрагмента будет обновлено и отсортировано в нем, если я знаю, как сортировать данные, используя метод из firebase startAt и endAt

enter image description here

Ответы [ 3 ]

0 голосов
/ 31 марта 2019
// 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
 }

 }
0 голосов
/ 31 марта 2019

Предлагаю тебе сделать

recyclerView.setAdapter(adapter) 

в вашем основном потоке, как в вашем onCreate, так как у вас нет данных, необходимых для отображения вашего реселлера, вы должны либо сначала настроить его на фиктивные данные, либо, более предпочтительно, пока его не отображать, показать сначала индикатор выполнения, сообщающий пользователю, что загрузка еще не завершена.

после сортировки данных вы можете позвонить

adapter.notifyDataSetChanged().
0 голосов
/ 31 марта 2019

Напишите в вашем фрагменте открытый метод, который сортирует данные и вызывает метод из вашей деятельности.

В вашем 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(); 
...