![](/img/trans.png)
[英]MainActivity to Fragment and from that Fragment back to MainActivity
[英]Finishing and removing fragment and going back to the MainActivity
Android Studio 3.4
我有一個簡單的股票預測應用程序,該應用程序使用一個名為ForecastActivity的活動和三個名為LoadingFragment
, ForecastFragment
和RetryFragment
RetryFragment
將首先使用以下代碼添加
`ForecastActivity`:
private fun startRetryFragment() {
fragmentManager?.let {
val fragmentTransaction = it.beginTransaction()
fragmentTransaction.replace(R.id.forecastActivityContainer, RetryFragment(), "RetryFragment")
fragmentTransaction.commit()
}
}
我在RetryFragment
中有一個按鈕,它將再次啟動ForecastActivity
。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
btnRetry.setOnClickListener {
startActivity(Intent(activity, ForecastActivity::class.java))
}
}
然后, LoadingFragment
將開始在ForecastActvity
使用此代碼
private fun startLoadingFragment() {
fragmentManager?.let {
val fragmentTransaction = it.beginTransaction()
fragmentTransaction.replace(R.id.forecastActivityContainer, LoadingFragment(), "LoadingFragment")
fragmentTransaction.commit()
}
}
然后,在加載完成后,ForecatActivity將啟動ForecastFragment
private fun startForecastFragment() {
fragmentManager?.let {
val fragmentTransaction = it.beginTransaction()
fragmentTransaction.replace(R.id.forecastActivityContainer, RetryFragment(), "ForecastFragment")
fragmentTransaction.commit()
}
在我的ForecastActivity
我試圖從后台刪除片段,基本上,我只是想從這里完成應用程序。 但是,由於我沒有向后堆棧添加任何內容,因此我不希望計數大於零。 但是,我想知道如何結束該應用程序並阻止RetryFragment
再次顯示?
override fun onBackPressed() {
fragmentManager?.let {
if(it.backStackEntryCount > 0) {
it.popBackStackImmediate()
}
else {
super.onBackPressed()
}
}
}
但是,當我在ForecastFragment
上單擊后退時,我希望應用程序完成。 但是,將顯示RetryFragment
,然后我必須再次單擊“后退”按鈕以結束該應用程序。
在RetryFragment
這樣做有什么問題RetryFragment
基本上,我只想從RetryFragment
回到ForecastActivity重新開始。 startActivity(Intent(activity, ForecastActivity::class.java))
非常感謝您的任何建議。
我認為您的問題是您要從RetryFragment
重新啟動ForecastActivity
。 如果您重組代碼以使RetryFragment
可以在ForecastActivity
觸發重試功能,則只需將RetryFragment
替換為下一個適當的片段,而不用調用startActivity()
創建新的ForecastActivity
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.