2013-06-04 11 views
15

progressDialogのテーマを設定したいと思います。 show()メソッドが静的であると私はコンパイラの警告が表示されますので、私はちょうどテーマをProgressDialogに設定する方法は?

progressDialog = new ProgressDialog(...); 
progressDialog.(do_sth_with_dialog); 
progressDialog.show(...) 

を書き込むことはできません

progressDialog = ProgressDialog.show(this, "Please Wait", "Loading dictionary file....", true, false); 

:それを作成するために、私はこのコードを使用します。 ダイアログテーマを設定する

progressDialog.THEME_HOLO_DARK 

のように利用できる定数を使用する方法はありますか?

また、ダイアログの背景を変更してコーナーを丸くしたいと思います(私はprogressBarでprogressDarog内にあるものを変更したくありません。ここには多くのチュートリアルがありますが、通常は新しいクラスそれはprogressDialogクラスを拡張します。

私はそれらを使用するカント場合、私はprogressDialog.THEME_HOLO_DARKのような定数にアクセスすることができますなぜprogressDialog?
のテーマや背景色を設定する簡単な方法はありますか?

+0

何を行うことができますが、非同期タスクをやっている間、あなたは、私はちょうどテーマにcustomProgressDialogを作ることができるどのような答えで書い背景とCORNERSしてください可能性があり、カスタムダイアログ – Adil

+0

アディルムガールを表示することができます変更?私はProgressBarに触れたくありません。 – Marek

+0

@Marek:Progress Dialogのレイアウトを上げることはできません(上記のAdil Mughalに言及されています)。カスタムダイアログを使用する必要があります。簡単なダイアログを作成し、必要に応じてカスタマイズすることができます。 –

答えて

28

ProgressDialog.show()は静的メソッドで参照してください、あなたは、あなたが上でプロパティを設定することができますProgressDialogのクラスのインスタンスを得ることはありません。

ProgressDialogインスタンスを取得するには、次の

// create a ProgressDialog instance, with a specified theme:  
ProgressDialog dialog = new ProgressDialog(mContext, ProgressDialog.THEME_HOLO_DARK); 
// set indeterminate style 
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
// set title and message 
dialog.setTitle("Please wait"); 
dialog.setMessage("Loading dictionary file..."); 
// and show it 
dialog.show(); 

EDIT 2016分の8:非推奨のテーマに関するコメントについて を、あなたものstyles.xmlを使用すると、ベースのテーマを継承し、例えば可能性があります

<style name="MyProgressDialog" parent="Theme.AppCompat.Dialog"> 
</style> 

この方法の詳細については、既に他の場所で広く扱っています。詳細はhttps://developer.android.com/guide/topics/ui/themes.htmlで始まります。

テーマとスタイルを使用することは、私の考えでは、ProgressDialogをインスタンス化するときにテーマをハードコードするよりもはるかにクリーンで簡単に解決することができます。

次に、あなただけの

new ProgressDialog(mContext); 

を行うと、あなたのグローバルテーマ/スタイルは、スタイリングを提供させることができます。

+2

テーマは廃止されました。他に何が使えますか? – user2520215

+0

^同じ質問です。ドキュメントで何も見つかりませんでした –

0

あなたはprogressDialogを膨らませることはできませんが。

あなたができることは、非同期タスクを実行中に、ダイアログクラスを継承して作成できるカスタムダイアログを表示することです。

はまたhow to set background image for progress dialog?

0
dialog = new Dialog(this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(R.layout.item_dialog); 
11

申し訳ありません。私は今働いています。完全な詳細を与えることはできません。しかしここに答えがあります。あなたが進行ダイアログUIを膨らませることができない

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(); 
+0

私のために働いていません –

+0

ありがとうございますContextThemeWrapper :) –

+0

私のどちらのためにも動作しません – Mike6679

関連する問題