簡體   English   中英

活動生命周期問題

[英]Activity life cycle issues

如果不存在全局數據結構(它是靜態的,在public class Globals extends Application ,它是靜態的),我想在一個活動中隱藏一個按鈕。 由於我想在每次恢復活動時都重繪按鈕,而不希望重繪其余視圖,因此我將視圖的初始化放在onCreate() ,並將按鈕隱藏代碼放在onResume()

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.myActivity);
}

@Override
protected void onResume() {
    super.onResume();

    if (Globals.datastructure == null) {
        ((Button) findViewById(R.id.myButton)).setVisibility(View.GONE);
    }
}

當我分配數據結構,然后從另一個活動返回活動時, onResume會正確執行,但是按鈕不會重新出現。

包含按鈕的活動可能不會被重新創建,這意味着當您從其他活動中返回該按鈕時,該按鈕將永遠不會被設置(返回)以使其可見。 您可能應該將onResume()更改為以下內容:

@Override
protected void onResume() {
    super.onResume();

    findViewById(R.id.myButton).setVisibility(Globals.datastructure == null ? View.GONE : View.VISIBLE);
}

因此,基本上,您只需要確保每當Globals.datastructure != null ,您還可以適當地更改可見性。 換句話說:一個else要求與if

暫無
暫無

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

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