Autore Topic: ProgressDialog senza percentuale o contatori  (Letto 655 volte)

Offline digester

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
ProgressDialog senza percentuale o contatori
« il: 25 Dicembre 2011, 21:21:23 CET »
0
Buongiorno a tutti,

sto cercando di fare un ProgressDialog  STYLE_HORIZONTAL con solo la percentuale, quindi senza il contatore da # a ###

oppure con solo il contatore e senza la percentuale..

ho provato ad usare
dialog.setProgressPercentFormat(null);
o
dialog.setProgressNumberFormat(null);

ma non funziona... mi pare di aver letto che dovrebbero andare dalla API 11 ma a me servirebbe anche per versioni precedenti...

avete qualche idea?

grazie in anticipo

Offline Fenicexx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
Re:ProgressDialog senza percentuale o contatori
« Risposta #1 il: 24 Luglio 2014, 17:41:37 CEST »
0
Salve,
rispolvero questa discussione perchè ho lo stesso problema:

vorrei far visualizzare solo la % senza il contatore da # a ###.

Qualche idea?

Grazie

Offline Fenicexx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
Re:ProgressDialog senza percentuale o contatori
« Risposta #2 il: 31 Luglio 2014, 17:45:27 CEST »
0
Ho trovato la soluzione, per eliminare il numero x/xx della progress dialog

Per API >11, basta fare:

Codice: [Seleziona]
progressDialog.setProgressNumberFormat(null);
Invece per API < 11 (come nel mio caso) ho dovuto creaare questa classe:

Codice: [Seleziona]
mport java.lang.reflect.Field;
import java.lang.reflect.Method;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class CustomProgressDialog extends ProgressDialog {

   
    private int progressNumberVisibility = View.GONE;

   
   
    public CustomProgressDialog(Context context, int theme, int progressPercentVisibility) {
        super(context, theme);
       
        this.progressNumberVisibility = progressNumberVisibility;
    }

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

       
        setFieldVisibility("mProgressNumber", progressNumberVisibility);
    }

    public void setFieldVisibility(String fieldName, int visibility) {
        try {
            Method method = TextView.class.getMethod("setVisibility", Integer.TYPE);

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

            for (Field field : fields) {
                if (field.getName().equalsIgnoreCase(fieldName)) {
                    field.setAccessible(true);
                    TextView textView = (TextView) field.get(this);
                    method.invoke(textView, visibility);
                }
            }
        } catch (Exception e) {
        }
    }
}

Quindi nella main.class ho questi attributi:


Codice: [Seleziona]
private CustomProgressDialog dialog;
    private int progressNumberVisibility = View.GONE;

e poi:

Codice: [Seleziona]
dialog = new CustomProgressDialog(this, R.style.MyTheme, progressNumberVisibility);
ps: ovviamente, volendo si può fare la stessa cosa con la %