0

Android版のTransformer Prime 201に.apkをインストールしました。4.0.3ですが、ProgressDialog はデバイス上のカスタム ProgressDialog のようには見えません。

なぜそうなのですか?デバイスでカスタム ProgressDialog スタイルを使用するには、コードで何を変更する必要がありますか?

ProgressDialog progressDialog = new ProgressDialog(this.context);
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(true);
progressDialog.setOnCancelListener(this);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.setMessage(MESSAGE);
progressDialog.show();

ここに画像の説明を入力 ここに画像の説明を入力

4

3 に答える 3

5

上記の受け入れられた答えはうまくいきますが、そのアプローチは大ハンマーでピーナッツを割るようなものです。ナットにひびが入りますが、ナットの下のテーブルも損傷する可能性があります。1 つの進行状況ダイアログの外観を変更するためだけに、アプリ全体のテーマを変更しても意味がありません。

より良い解決策は、アプリのテーマを変更せずに、進行状況ダイアログのテーマを変更することです。次のコードを使用すると、すべての Android バージョンで Gingerbread の進行状況ダイアログの外観を取得できます。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
    dialog = new ProgressDialog(yourActivity, AlertDialog.THEME_TRADITIONAL);
else
    dialog = new ProgressDialog(yourActivity);
于 2012-10-07T19:45:37.017 に答える
4

アプリを Holo テーマに設定する必要があります。この progressIndicator は、アプリで Holo テーマを使用している場合にのみ表示されます。

問題は、Android バージョン 3 未満のデバイスではこのテーマを使用できないため、単純にテーマを設定できないことです。

そのため、2 つのテーマ ファイルを作成する必要があります。1 つはフォルダー res/values/ にあり、もう 1 つはフォルダー res/values-v11/ にあります。フォルダー res/values-v11 内のファイルは、API レベル 11 以上のすべてのデバイスに読み込まれます。

values-v11 フォルダーで、アプリのテーマを次のように定義します。

<resources>
   <style name="Theme" parent="@android:style/Theme.Holo.Light"></style>
</resources>

デフォルト値フォルダーで、次のようにテーマを定義します。

<resources>
   <style name="Theme" parent="@android:style/Theme.Light.NoTitleBar"></style>
</resources>

次に、マニフェストでこのテーマをアプリケーションに適用します。

<application
    android:name=".name.App"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme" >

詳細については、テーマとスタイルに関するドキュメントを参照してください。

于 2012-07-03T12:12:25.090 に答える
0
ProgressDialog progressDialog;

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB){
   progressDialog = new ProgressDialog(new ContextThemeWrapper(context, android.R.style.Theme_Holo_Light_Dialog));
}else{
   progressDialog = new ProgressDialog(context);
}

progressDialog.setMessage("Loading....");
progressDialog.show();
于 2014-02-15T08:36:04.313 に答える