У меня есть RecyclerView в TabLayout, работает хорошо .. Я полон данных RecyclerView и работает хорошо, но при переходе к другой вкладке и возврата и предыдущей вкладке данные в recyclerView исчезают .. Что я сделал не так ?
ScheduleAndGuestList. java
public class ScheduleAndGuestList extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
private TabItem tabSchedale,tabGuests;
private pageAdapter pagerAdapter;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule_and_guest_list);
tabLayout =(TabLayout)findViewById(R.id.tableLayout);
tabSchedale=(TabItem)findViewById(R.id.tabSchedulePest);
tabGuests=(TabItem)findViewById(R.id.tabGuestsPest);
viewPager=findViewById(R.id.viewPager);
pagerAdapter=new pageAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getPosition() == 0) {
pagerAdapter.notifyDataSetChanged();
} else if (tab.getPosition() == 1) {
pagerAdapter.notifyDataSetChanged();
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
viewPager.setOffscreenPageLimit(tabLayout.getTabCount());
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
}
}
tabSchedule. java
public class tabSchedule extends Fragment {
private String horaMin,stringDescrp;
private Button btn, seleccHora;
private EditText descrpEt;
private ImageView img1,img2;
private HorizontalScrollView scrollView;
private ArrayList<String> arrayHora,arrayDescrp;
private RecyclerView recyclerViewtab;
listScheduleAdapter adapter=new listScheduleAdapter(arrayHora,arrayDescrp);
public tabSchedule() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_tab_schedule, container, false);
btn = (Button) view.findViewById(R.id.button);
recyclerViewtab=(RecyclerView)view.findViewById(R.id.recyclerViewScheduleId);
arrayHora=new ArrayList<String>();
arrayDescrp=new ArrayList<String>();
//RecyclerView
recyclerViewtab.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
recyclerViewtab.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
adapter=new listScheduleAdapter(arrayHora,arrayDescrp);
recyclerViewtab.setAdapter(adapter);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.alertdialog_addschedule, null);
scrollView=(HorizontalScrollView)view.findViewById(R.id.scrollView);
img1=(ImageView)view.findViewById(R.id.img1);
img2=(ImageView)view.findViewById(R.id.img2);
//Selecionar hora
{
seleccHora = (Button) view.findViewById(R.id.seleccionarHoraSheduleId);
seleccHora.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar mcurrentTime = Calendar.getInstance();
int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
int minute = mcurrentTime.get(Calendar.MINUTE);
TimePickerDialog mTimePicker;
mTimePicker = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
horaMin = String.format("%02d:%02d", selectedHour, selectedMinute);
seleccHora.setText(horaMin);
}
}, hour, minute, true);
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
});
}
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
img1.setBackgroundColor(Color.parseColor("#FF4081"));
Toast.makeText(getActivity(), "Works 1!", Toast.LENGTH_SHORT).show();
}
});
builder.setTitle("Agregar programacion");
builder.setPositiveButton("Agregar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
descrpEt=(EditText)view.findViewById(R.id.descripScheduleId);
stringDescrp=descrpEt.getText().toString();
arrayHora.add(horaMin);
arrayDescrp.add(stringDescrp);
adapter.notifyDataSetChanged();
}
}).setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setView(view);
builder.show();
}
});
return view;
}
}
pageAdapter. java
public class pageAdapter extends FragmentPagerAdapter {
private int numOfTabs;
public pageAdapter(@NonNull FragmentManager fm, int numOfTabs) {
super(fm);
this.numOfTabs = numOfTabs;
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return new tabSchedule();
case 1:
return new tabGuests();
default:
return null;
}
}
@Override
public int getCount() {
return numOfTabs;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}