2011-01-24 4 views
2

У меня есть проблема, что, как изменить текст внутри progressdialog (в основном, имеющий STYLE_HORIZONTAL, как на рисунке) (с помощью Android 1.6)Изменение Выравнивание текста в ProgressDialog

enter image description here

к тексту, показанный на рисунке.

enter image description here

Пожалуйста, помогите в этом случае. Мой код о progressdialog относится как это: -

mProgressDialog = new ProgressDialog(PDFActivity.this); 

    mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 

    mProgressDialog.setTitle(R.string.msgDownloadingWait); 
    mProgressDialog.setMessage(getResources().getString(
    R.string.msgDownloading)); 

    // User is not allowed to cancel the download operation. 
    mProgressDialog.setCancelable(false); 

    mProgressDialog.setMax(serverFileCount); 

    mProgressDialog.show(); 

Спасибо заранее.

+0

Просьба уточнить ваш вопрос. Я не понимаю, что вы хотите сделать. – metter

+0

В основном я хочу изменить текст диалога хода выполнения. Прогресс и прогресс прогресса (как показано на первом рисунке) в соответствии с текстом, показанным на втором рисунке. Пожалуйста, спросите еще раз, если еще не ясно. –

+0

Shashank bhai o genki deska? –

ответ

2

Я получил ответ, связанный с этим материалом несколько дней назад (но обновляя его сегодня, получив некоторое свободное время).

Вот код, который я использовал для создания этого материала. Я сделал это выше, выбрав Custom Dialog. Сначала здесь код активности, из которого я назвал класс Custom Dialog.

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.os.Bundle; 
import android.widget.ProgressBar; 
import android.widget.TextView; 

public class ProgressThread extends Activity { 

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

     MyDialog dialog = new MyDialog(this); 
     dialog.show(); 
    } 
} 

Теперь код, связанный с пользовательским диалогом. Здесь я использовал ProgressBar & TextViews в CustomDialog & сделал расчеты на основе загрузки, которая, в свою очередь, обновляет TextViews.Пример, используемый здесь, обновляет текстовые поля & progressbar в фиктивном образе. Вы меняете это в соответствии с вашими потребностями.

import android.app.Dialog; 
import android.content.Context; 
import android.graphics.Color; 
import android.os.Handler; 
import android.os.Message; 
import android.widget.ProgressBar; 
import android.widget.TextView; 

public class MyDialog extends Dialog { 
    public static final int STATUS_UPDATE = 101; 
    public static final int STATUS_COMPLETE = 100; 
    ProgressBar progressBar; 
    TextView textView; 
    TextView percent; 
    int increment; 
    int progress; 

    public MyDialog(Context context) { 
     super(context); 
     setContentView(R.layout.progressbar); 

     setDialog(); 
    } 

    private void setDialog() { 
     setTitle("Downloading Files...."); 
     textView = (TextView) findViewById(R.id.textProgress); 
     progressBar = (ProgressBar) findViewById(R.id.progress_horizontal); 
     percent = (TextView) findViewById(R.id.textPercentage); 

     percent.setTextColor(Color.WHITE); 
     textView.setTextColor(Color.WHITE); 

     progressBar.setProgressDrawable(getContext().getResources() 
       .getDrawable(R.drawable.my_progress)); 
     progressBar.setIndeterminate(false); 

     // set the maximum value 
     progressBar.setMax(1315); 

     launcherThread(); 

    } 

    private void launcherThread() { 

     LoaderThread loaderThread = new LoaderThread(); 
     loaderThread.start(); 

     LauncherThread launcherThread = new LauncherThread(); 
     launcherThread.start(); 

    } 

    private class LoaderThread extends Thread { 
     @Override 
     public void run() { 
      try { 
       while (progressBar.getProgress() < progressBar.getMax()) { 
        // wait 500ms between each update 
        Thread.sleep(100); 
        increment++; 
        // active the update handler 
        progressHandler.sendEmptyMessage(STATUS_UPDATE); 
       } 
       progressHandler.sendEmptyMessage(STATUS_COMPLETE); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    // handler for the background updating 
    Handler progressHandler = new Handler() { 
     public void handleMessage(Message msg) { 

      switch (msg.what) { 

      case STATUS_UPDATE: 
       progressBar.setProgress(increment); 
       float value = increment/1315F; 
       percent.setText(" " + ((int) (value * 100)) + "%"); 
       System.out.println(value * 100); 
       textView.setText(String.valueOf(progressBar.getProgress()) 
         .concat("/" + progressBar.getMax())); 
       break; 

      case STATUS_COMPLETE: 
       dismiss(); 
      } 
     } 
    }; 

    private class LauncherThread extends Thread { 
     @Override 
     public void run() { 
      progressHandler.sendMessage(progressHandler.obtainMessage()); 
      progressHandler.sendEmptyMessage(0); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^