2012-04-10 9 views
0

と呼ばれ、問題が発生するビューには1つのボタンと1つのタブホストがあります。 ボタンのonclickリスナーは、現在のタブのテキストを変更します。 問題は、向きを変えて(ポートを着陸または着陸させる)、ボタンのonclicklistenerは何とか呼び出され、現在のタブのテキストがスキミングされます。なぜこれが起こっていて、解決策は何ですか?オリエンテーションが変わると、何とかブートのonclicklistenerが

myActivity extends Activity{ 
    onCreate(bundle){ 
     .. 
     .. 
     add(button1); 
     button1.onClickListner(new OnClickListener(){ 
      .. 
      someAlertDialog.show();    //line xxx 

     }); 
    } 

} 

それは実際にどんな警告ダイアログを表示する(そうすることを想定されていない)が、エラーログのリーク@line xxxのがあると言うことはありません。 ログ全体が間もなく届きます。

編集:私は今エラーログを取得することはできませんが、向きが変わった後でも変わったことが起こっています。

+3

これまでに行ったコードなしではどうすればよいですか? –

+0

コードは500行ほど長く、SSCCEを準備しようとしています。 – guness

答えて

0

オリエンテーションの変更でデフォルトで発生することは、現在のアクティビティインスタンスが破棄され、再作成され、前のインスタンスの状態が渡されることです。これが起こったときにダイアログが画面に表示されていると、それを表示しているウィンドウがリークします。

onDestroyが呼び出されたときにダイアログを管理するActivity#showDialogを使用していないので、手動で行う必要があります。したがって、Activity#onDestroyを無効にして、表示されている場合はDialog#dismissに電話する必要があります。

関連する問題