簡體   English   中英

如何使用OnPause方法

[英]how to use OnPause method

在onPause()方法中,如何更改從EditText加載的按鈕文本?

例如

@Override
public void onPause(){
    button.setText(text.getText().toString());
    super.onPause()
}

當我按下后退按鈕時,它不會更改按鈕文本

首先忽略了為什么要在onPause()中執行此操作的問題...

通常,您的視圖狀態將保存在onSaveInstanceState(...) 但是根據文檔 ,不能保證對onSaveInstanceState(...)的調用是在對onPause()的調用之前還是之后進行。 如果在onPause()之前調用onSaveInstanceState(...) ,則您在onPause()所做的任何更改都將丟失。

請閱讀文檔 -它以出色的圖表描述了Android活動流程。
onPause()是您的活動中已經存在的方法,因此您將需要@Override 除非您修改了后退按鈕的行為,否則會發生以下情況:

  • 按下時執行onPause(),並替換按鈕文本(假定此范圍內的文本和按鈕可見)-在這么短的時間內,您將無法注意到(除非設備滯后)
  • 接下來執行onStop(),並且您的應用程序會在之后不久退出

如果您想嘗試檢查文本是否設置正確,則可能會更容易編寫:

@Override
public void onPause(){
    super.onPause();
    Log.d("Text's text:" + text.getText().toString()
          + "Button:" + button.getText().toString());

}

您將需要導入android.util.Log
還要注意,強烈建議( here )在覆蓋Android默認方法時首先調用super()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM