2012-12-30 121 views
0

如果全局数据结构不存在(它是静态的,在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正确执行,但该按钮不会再出现。

回答

3

包含该按钮的活动可能不会被重新创建,这意味着当您从其他活动返回到该活动时,该按钮从不会被设置为可见(后退)。你或许应该改变onResume()喜欢的东西:

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

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

所以基本上你只需要确保每当Globals.datastructure != null,也相应地更改知名度。换句话说:if需要else

+0

这非常合理,谢谢!如果我在'onResume()'中重写了视图,我只需要担心删除按钮,但由于我只在创建活动时绘制视图,所以我也不得不担心重新添加它。 –