我有一个主菜单活动,用户可以进入几个不同的功能。当他们单击一个时,我将他们移动到该活动,然后打开片段。他们可以随时单击“完成”返回主菜单,但现在只能返回第一个片段。我是否错误地处理了活动 > 活动 > 片段堆栈?
这是主菜单
binding.putaway.setOnClickListener {
val intent = Intent(this, PutAwayMainActivity::class.java)
startActivity(intent)
}
binding.cyclecount.setOnClickListener {
val intent = Intent(this, CycleCountMainActivity::class.java)
startActivity(intent)
}
binding.transfer.setOnClickListener {
val intent = Intent(this, TransferMainActivity::class.java)
startActivity(intent)
}
binding.itemlookup.setOnClickListener {
val intent = Intent(this, ItemLookupMainActivity::class.java)
startActivity(intent)
}
binding.newreceipt.setOnClickListener {
val intent = Intent(this, NewReceiptMainActivity::class.java)
startActivity(intent)
}
binding.additem.setOnClickListener {
val intent = Intent(this, NewReceiptAddItemMainActivity::class.java)
startActivity(intent)
}
这是我的新收据主要活动
class NewReceiptMainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_new_receipt_main)
val fragment = NewReceiptSelectProgram()
val fram = supportFragmentManager.beginTransaction()
fram.replace(R.id.nav_newreceipt_fragment,fragment)
fram.commit()
}
}
这是我尝试返回的方式(这只返回到 NewReceiptSelectProgram 而不是 MainMenu)
private fun donePressed() {
parentFragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)
}
我认为这应该有帮助:
private fun donePressed() {
requireActivity().finish()
}