[英]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.