0

I created a app with 4 fragments.when I press back button in 4th fragement , I need to go directly 1st fragment. I tried lots of way but none of them worked for me. please help me to find a correct way to solve my prlm

DashboardActivity `class DashboardActivity : AppCompatActivity() {

private lateinit var dashboardBinding: ActivityDashboardBinding

lateinit var sharedPreference: SharedPreference
private lateinit var navController: NavController
private  lateinit var navHostFragment: NavHostFragment
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)    
    sharedPreference = SharedPreference(this)
    dashboardBinding = DataBindingUtil.setContentView(this, R.layout.activity_dashboard)
    setContentView(dashboardBinding.root)
    navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
    navController = navHostFragment.navController



    val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView)
    bottomNavigationView.setupWithNavController(navController)
}
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    currentFocus?.let {
        val imm: InputMethodManager = getSystemService(
            Context.INPUT_METHOD_SERVICE
        ) as (InputMethodManager)
        imm.hideSoftInputFromWindow(it.windowToken, 0)
    }
    return super.dispatchTouchEvent(ev)
}

}`

4th fragment `class ProfileFragment : Fragment() {

lateinit var sharedPreference: SharedPreference
var dob : String  = ""
var email : String = ""
var mobile_no : String = ""
var name : String = ""
var mLogoProgressDialog: ProgressDialog? = null

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {

    val binding = DataBindingUtil.inflate<FragmentProfileBinding>(
        inflater,
        R.layout.fragment_profile,
        container,
        false
    )

    sharedPreference = context?.let { SharedPreference(it) }!!

    var text = sharedPreference.getValueString("token")
    Log.d("getToken",""+text)
    if (text != null) {
        initializeLogoProgressDialog()
        callMyProfile(text,binding)
    }

    binding.signOut.setOnClickListener {
        signOut(text)

    }
    
    binding.notificyButton.setOnClickListener {
        val dialog = NotifyDialog()
        dialog.show(requireActivity().supportFragmentManager, "NotifyDialog")
    }
    binding.editProf.setOnClickListener {
        view?.let { it1 ->
            val navController = Navigation.findNavController(it1)
            val bundle = Bundle()
            bundle.putString("sendMob", mobile_no)
            bundle.putString("sendEmail",email)
            bundle.putString("sendName",name)
            bundle.putString("sendDob",dob)
            navController.navigate(R.id.action_profileFragment_to_edtUsernameFragment, bundle)
        }
    }
    binding.changePassword.setOnClickListener {
        view?.let { it1 ->
            Navigation.findNavController(it1)
                .navigate(R.id.action_profileFragment_to_changePasswordFragment)
        }
    }
    binding.signOut.setOnClickListener {
        if (sharedPreference.getValueString("token")!=null) {
            sharedPreference.clearSharedPreference()
        }
        view?.let { it1 ->
            Navigation.findNavController(it1)
                .navigate(R.id.action_profileFragment_to_loginActivity)
        }
    }
    binding.deleteAccount.setOnClickListener {
        val dialog = DeleteDialog()
        dialog.show(requireActivity().supportFragmentManager, "DeleteDialog")
    }
    return binding.root
}}`
Jaanu
  • 1,297
  • 2
  • 7
  • 12
  • did there is any need for the 2nd or 3rd fragment when you reached to 4th fragment?? – DeePanShu Dec 01 '21 at 11:23
  • No, what is the problem is when I press back button it goes each nd every fragment whatever I opened before goes to the 4th fragment, but I don't want to go each fragment , I need to skip these fragment wanna go directly to go to the home fragment – Jaanu Dec 01 '21 at 11:29
  • can you please share the code for Fragment transitions?? – DeePanShu Dec 01 '21 at 11:30
  • I can't able to share in comments, Can you please say how can I share my code – Jaanu Dec 01 '21 at 11:36
  • Edit your question, to share your code – DeePanShu Dec 01 '21 at 11:39
  • ok ,kindly please check it now – Jaanu Dec 01 '21 at 11:44
  • Let us [continue this discussion in chat](https://chat.stackoverflow.com/rooms/239729/discussion-between-pavi-subramanyam-and-deepanshu). – Jaanu Dec 01 '21 at 11:51
  • try this question: https://stackoverflow.com/questions/50514758/how-to-clear-navigation-stack-after-navigating-to-another-fragment-in-android – DeePanShu Dec 01 '21 at 12:08

0 Answers0