0

私のアプリは、UI に何かを表示する前に JSON を読み込む必要があります。JSON は、アプリのテーマを決定する方法を決定します。

私は通常それらが好きではありませんが、ユーザーがインターフェイスの各要素の色など​​を変更するのを見る必要がないように、スプラッシュ画面/読み込み画面が必要です。しかし、私の問題は、アプリを読み込むときにできることです私の進行状況ダイアログが起動する前に、数秒間デフォルトのスタイルを参照してください。アプリのタイトルを含むアクション バーを含む、デフォルトの暗いグラデーション ホロ背景が表示されます。XML でアクション バーを非表示にすると、後でアクション バーを追加することができず、アクション バーを取得することができませんnullpointerexceptions

onCreate()をセットアップする前に、 の最初にスプラッシュ スクリーンを起動AsyncTaskしようとしましたonPreExecute()

理想的には、アプリの起動時にすぐに読み込みダイアログを表示する方法が必要です。または、遅延が必要な場合は、ユーザーに黒い背景を表示したいだけです.

私が言及していない、これを行うためのまったく異なる方法はありますか?

ありがとう。

4

2 に答える 2

1

ここで実際にフラグメントを使用することを検討します。スプラッシュ スクリーン用のフラグメントを作成し、アクティビティの最初の開始時にそれを読み込むことができます。次に、json の読み込み/解析が完了したら、FragmentTransaction を使用して 2 番目の「画面」を 2 番目のフラグメントとして読み込み、読み込み画面を置き換えることができます。これにより、優れた遷移アニメーションを作成することもできます。

これは、2 つの別個のアクティビティを使用して、njzk2 からのコメントでも同様に実行できます。基本的に、「読み込みアクティビティ」中に AsyncTask の解析を行い、結果を、インテント エクストラを使用して他のアクティビティに渡すことができるシリアライズ可能なオブジェクトとして保存するか、json を SharedPreferences ディクショナリに保存して、それを参照します。二度目の活動。

また、これはスタートアップのたびに行う必要がないことに気付くかもしれません。その場合は、シリアライズ可能なものをディスクに保存して解析をスキップできるようにするか、共有設定に保存して、存在する場合は参照できるようにする必要があります。

于 2013-02-15T15:37:37.130 に答える
0

表示されるのは、テーマに従ってテーマ化された空のアクティビティです。したがって、できることは何もありません。ブートストラップ アクティビティに時間がかかる場合に表示されます。

できることは、splash-image を windowBackground (window decor-view の背景) として設定して、アクティビティに特別なテーマを設定し、不要な場合は後で背景を削除することです。

<style name="SplashScreenActivityTheme" parent="android:Theme.Light.NoTitleBar">
        <item name="android:windowBackground">@drawable/splash_image</item>
</style>

詳細については、Cyril Mottier の最新の投稿をご覧ください。

もう 1 つ注意: Android は通常、スプラッシュ スクリーンを使用しません。デザイナーがそれに反対していない場合は、ProgressBar などの進行状況インジケーターを使用できます。

于 2013-02-15T15:29:57.163 に答える