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可視性も適切に変更することを確認する必要があります。つまり、 にelseは が必要ですif

于 2012-12-30T04:59:10.930 に答える