У меня есть два действия, в каждое из которых загружается по одному фрагменту. В первом действии у меня есть фрагмент, который имеет представление списка, и когда я нажимаю элемент представления списка, он переводит меня к другому действию с использованием Intent. Фрагменты нагрузки на 2-е действие. До сих пор он работает нормально.
Теперь, когда я нажимаю кнопку возврата устройства, чтобы снова go вернуться к просмотру списка, мне нужно щелкнуть 2–3 раза, чтобы go перейти к предыдущему действию просмотра списка, второму действие или фрагмент перезагружается несколько раз, прежде чем я вернусь к первому действию.
Не могу понять проблему.
Заранее спасибо !!!
В первом действии это как я загружаю фрагмент
fragment = new GrowSapceTutorialFragment();
fragmentManager = getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame_container_grow_tutorial, fragment);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.commit();
Для кнопки возврата в 1-м действии:
@Override
public void onBackPressed() {
super.onBackPressed();
В GrowspaceTutorialfragment под кодом oncreate viewenter здесь:
listViewTip.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
for(int i=0; i<=position;i++){
name = dataModelArrayList.get(position).getTitle().toString();
description = dataModelArrayList.get(position).getDescription().toString();
image = dataModelArrayList.get(position).getImageUrl().toString();
tipIntent = new Intent(getActivity(), TipDetailsActivity.class);
tipIntent.putExtra("Title",name);
tipIntent.putExtra("Des", description);
tipIntent.putExtra("Image", image);
startActivity(tipIntent);
В моем действии с подробностями подсказки (2-е действие):
tipImage = findViewById(R.id.tipImageView);
title = getIntent().getStringExtra("Title");
description = getIntent().getStringExtra("Des");
image = getIntent().getStringExtra("Image");
Picasso.get().load(image).into(tipImage);
bundle = new Bundle();
bundle.putString("Title",title);
bundle.putString("Des", description);
fragment = new TipDetailsFragment();
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
fragment.setArguments(bundle);
fragmentTransaction.detach(fragment);
fragmentTransaction.attach(fragment);
fragmentTransaction.replace(R.id.frame_container, fragment);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragmentTransaction.commit();
Активность с подробностями подсказки кнопка «Назад» обрабатывается:
@Override
public void onBackPressed() {
super.onBackPressed();
}
Фрагмент сведений о подсказке:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tip_details, container, false);
title = view.findViewById(R.id.textViewTipTitle);
description = view.findViewById(R.id.textViewDescription);
bundle = getArguments();
tipTitle = bundle.getString("Title");
tipDes = bundle.getString("Des");
title.setText(tipTitle);
description.setText(tipDes);
return view;
}