[英]Up Navigation in android
當我按下手機或支持操作欄上的后退按鈕時,它正在退出應用程序。 如何修復它以返回主要活動在登錄代碼中:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
supportActionBar?.setDisplayShowHomeEnabled(true)
.... }
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
NavUtils.navigateUpFromSameTask(this)
return true
}
}
return super.onOptionsItemSelected(item)
}
在清單文件中:
<activity
android:name=".LoginActivity"
android:label="Login"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.food_bank.MainActivity"/>
</activity>
什么對我有用:
主要活動:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener{
startActivity(Intent(this, LoginActivity::class.java))
}
}
}
登錄活動:
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
}
// no onOptionsSelected here
}
顯現:
(...)
<activity
android:name="LoginActivity"
android:exported="false"
android:label="@string/title_activity_login"
android:parentActivityName=".MainActivity"/>
(...)
我猜從兩次supportActionBar?.setDisplayShowHomeEnabled(true)
切換到 supportActionBar supportActionBar?.setDisplayHomeAsUpEnabled(true)
與它有關
像這樣更改您的onOptionsItemSelected
android.R.id.home -> {
onBackPressed()
return true
}
並像這樣覆蓋您的活動的onBackPressed
方法
override fun onBackPressed() {
super.onBackPressed()
NavUtils.navigateUpFromSameTask(this)
}
所以我從所有意圖代碼中刪除了“finish()”,它通過在清單文件中命名父活動來工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.