2012-01-17 13 views
3

私のアプリには進行状況バーがありますが、テキストをいくつか表示していますが、テキストを削除したいのです。テキストを削除する方法を教えてください。ここ AndroidでprogressBarのテキストを削除するにはどうすればよいですか?

ProgressDialog progDialog = new ProgressDialog(ProgressBarExample.this);   
progDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
progDialog.setMax(200); 
progDialog.setMessage("Dollars in checking account:"); 
progDialog.setButton("Cancel", 
    new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 

     } 
    }); 
progDialog.show(); 

はスクリーンショットです:

enter image description here

おかげで、 ラム

は、ここに私のコードスニペットです。

答えて

4
progDialog.setProgressNumberFormat(null); 
progDialog.setProgressPercentFormat(null); 
+0

あなたはAPIレベルでそのテキストを見ている場合はこれらのメソッドは、SDKのバージョン8 – ram

+0

ではないように思わこれらのメソッドをサポートしていないこと、あなたはおそらく独自のダイアログを作成し、ダイアログのレイアウトに進捗バーを貼り付ける必要があります – Rich

+0

これらのコードはすべてのAPIレベルでうまく機能しません。APIが<14の場合、このコードは正しく機能しない可能性があります。 –

4

余分な情報:

//間違った方法

progDialog.setProgressNumberFormat(null); // NullPointerException !!! 
progDialog.show(); 

//正しい方法

progDialog.show(); 
progDialog.setProgressNumberFormat(null); 
+0

これは重要です。あなたのテストデバイスで間違った方法で動作するかもしれませんが、クラッシュすることがあります – philipp

4

アンドロイド< APIレベル11ため、このクラスを作成し、それを使用します代わりにデフォルトのProgressDialogを使用します。それはGONEにvisbilityを設定するためにリフレクションを使用しています。

public class CustomProgressDialog extends ProgressDialog { 

public CustomProgressDialog(Context context) { 
    super(context); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    try { 
     Method method = TextView.class.getMethod("setVisibility", 
       Integer.TYPE); 

     Field[] fields = this.getClass().getSuperclass() 
       .getDeclaredFields(); 

     for (Field field : fields) { 
      if (field.getName().equalsIgnoreCase("mProgressNumber")) { 
       field.setAccessible(true); 
       TextView textView = (TextView) field.get(this); 
       method.invoke(textView, View.GONE); 
      } 

      if (field.getName().equalsIgnoreCase("mProgressPercent")) { 
       field.setAccessible(true); 
       TextView textView = (TextView) field.get(this); 
       method.invoke(textView, View.GONE); 
      } 
     } 
    } catch (Exception e) { 
     Log.e(TAG, 
       "Failed to invoke the progressDialog method 'setVisibility' and set 'mProgressNumber' to GONE.", 
       e); 
    } 
} 
} 
関連する問題