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
}}`