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正确执行但按钮不会重新出现。

4

1 回答 1

3

包含按钮的活动可能没有被重新创建,这意味着当您从其他活动返回到它时,按钮永远不会被设置(返回)为可见。您可能应该将其更改为onResume()

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

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

所以基本上你只需要确保无论何时Globals.datastructure != null,你也可以适当地改变可见性。换句话说: anelse是必需的if

于 2012-12-30T04:59:10.930 回答