У меня есть действие, которое использует ViewPager, чтобы содержать 2 фрагмента. Внутри одного из фрагментов у меня есть recyclerView. До сих пор, когда я впервые запускаю приложение, представление отображается правильно. Фрагмент делает запрос в веб-сервис и загружает данные в просмотрщик фрагмента и все хорошо. Теперь моя проблема заключается в том, что я должен отфильтровать данные, загруженные в представление переработчика, из MainActivity, просто передав целое число, но представление переработчика не обновляется.
Это мой код:
как яустановить мой viewPager в MainActivity:
setSupportActionBar(toolbar);
ViewPagerAdapter adapterpager = new ViewPagerAdapter(getSupportFragmentManager(),context);
viewPager.setAdapter(adapterpager);
tabLayout.setupWithViewPager(viewPager);
ViewPagerAdapter:
public class ViewPagerAdapter extends FragmentPagerAdapter {
Context context;
public ViewPagerAdapter(FragmentManager fm, Context context) {
super(fm);
this.context=context;
}
@Override
public Fragment getItem(int position) {
ActivitiesFragment activitiesFragment = new ActivitiesFragment(context);
ArticlesFragment articlesFragment = new ArticlesFragment(context);
Fragment fragment = new Fragment();
if (position==0) {
fragment = activitiesFragment;
}else if (position==1){
fragment = articlesFragment;
}
return fragment;
}
@Override
public int getCount() {
return 2;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
position = position+1;
String tabTittle="Activities";
if (position==2){
tabTittle = "Articles";
}
return tabTittle;
}
}
Мой ActivityFragment:
public class ActivitiesFragment extends Fragment implements ActivitiesResponse {
private RecyclerView activityRecycler;
private RequestMethods req;
private String skillId="1";
private String babyId="50";
Context context;
private ActivitiesRecyclerAdapter activitiesRecyclerAdapter;
public ActivitiesFragment(Context context) {
// Required empty public constructor
this.context=context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_activities, container, false);
activityRecycler = v.findViewById(R.id.activities_recycler);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
linearLayoutManager.setOrientation(RecyclerView.VERTICAL);
activityRecycler.setLayoutManager(linearLayoutManager);
req = new RequestMethods(context);
req.getActivities(skillId,babyId,0);
req.onActivityResponse(this);
return v;
}
@Override
public void getActivities(List<Activity> list, int age) {
List<Activity> activityList = new ArrayList<>();
int listPos=0;
if (age==0){
activityList = list;
}else{
for (int x =0;x<list.size();x++){
if (list.get(x).getAge()==age){
activityList.add(listPos,list.get(x));
listPos++;
}
}
}
activitiesRecyclerAdapter = new ActivitiesRecyclerAdapter(activityList, context, new OnItemActivityClickListener() {
@Override
public void onItemClick(List<Activity> list, int position) {
Log.e("response_data","Click "+list.get(position).getName());
}
});
activityRecycler.setAdapter(activitiesRecyclerAdapter);
}
public void requestActivities(int age){
RequestMethods request = new RequestMethods(context);
request.onActivityResponse(this);
request.getActivities(skillId,babyId,age);
}
}
Я попытался обновить свой Recyclerview с помощью метода Override getActivities(List<Activity> list, int age){}
но ничего не получалось до сих пор. Я застрял на несколько часов, пожалуйста, помогите!