2011-12-27 11 views
0

android tabletsのアプリを設計しました。タブバーで構成されています。私は風景のためのものと肖像画のためのものとしてそれぞれのタブの2つのレイアウトを設計しました。ユーザーがタブのいずれかを選択すると、最初にprogress bar in asynchronous taskと表示され、いくつかのデータがロードされます。android tabbar oreintation issue

現在、私はon restore instanceで作業しています。ユーザーがアプリをportraitまたはviceversaのいずれかに回転させると、asynchronous task is been called againとデータが最初のプロセスから読み込まれます。

この方法では、この方法でポートレートからランドスケープに回転すると、ポートレートレイアウトは横長モードで表示されますが、横向きレイアウトではポートレートに比べていくつかの変更が設計されています。風景と肖像画のレイアウトが違うので、私はOnConfigを使用することができません。両方は私の問題を解決していない、

問題を克服するためにどのように、私はくぼみ方法をONCONFIG使用したいと私は Onrestore instance stateを試してみました... plsは

答えて

0

......私はより良い方法を提案し、私はしないでくださいonConfigurationChangedメソッドをオーバーライドすることをお勧めします。マニフェストファイルに設定を上書きしないでください。オリエンテーションを変更すると、アクティビティが再作成されます。これは、新しいレイアウトにすべての正しいリソースファイルがロードされるためです。

AsyncTaskに関しては、一般的なパターンはこれをアクティビティと結合しないことです。代わりに、アクティビティへの参照をリスナとして保持するシングルトンmanangerクラスを作成できます。アクティビティが応答すると、コールバックの新しいActivityインスタンスでマネージャクラスを更新できます。非同期プロセスが終了すると、現在のアクティビティに通知されます。

進捗バーを維持するために、onSaveInstanceStateの間に保存され、ビューの表示/非表示に使用できるonRestoreInstanceStateに復元される状態変数を保持することができます。 Antherのオプションは、実行中のプロセスのマネージャークラスをポーリングして、それに応じてレイアウトを更新することです。

これは最速で簡単な解決策ではないかもしれませんが、このための良いフレームワークは道を救うでしょう。

+0

シングルトンマネージャークラスとは何ですか?あなたの答えのサンプルアプリケーションを提案することができます –

+0

シングルトンは一般的なデザインパターンです。あなたのAsyncTaskリファレンスを渡すために 'onRetainNonConfigurationInstance'を使う別の解決策があると思います。これにより、アクティビティが復元されると、 'getLastNonConfigurationInstance'でアクセスすることができます。 – Chase