簡體   English   中英

android中的進度條更新

[英]progress bar update in android

我正在開發一個android應用程序。 在垂直進度條上工作。
當我添加新項目時,該項目與某個百分比值(例如30%)相關聯。
進度條需要從0%更新到30%。 如果我添加另一個項目,其百分比值為40%,則進度條需要update from 30% to 70%(30+40)
我怎樣才能做到這一點。 示例代碼會有所幫助。 我已經在這里發布了我的代碼。

public class VerticalProgressBar extends Activity {

Button buttonStart;
ProgressBar vProgressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.verticalprogressbar);
    buttonStart = (Button) findViewById(R.id.start);
    vProgressBar = (ProgressBar) findViewById(R.id.vprogressbar);

    buttonStart.setOnClickListener(new Button.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            buttonStart.setClickable(false);
            new asyncTaskUpdateProgress().execute();
        }
    });

}

public class asyncTaskUpdateProgress extends AsyncTask<Void, Integer, Void> {

    int progress;

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        buttonStart.setClickable(true);

    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        progress = 0;
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // TODO Auto-generated method stub
        vProgressBar.setProgress(values[0]);
    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // TODO Auto-generated method stub
        while (progress < 100) {

            progress++;
            publishProgress(progress);
            SystemClock.sleep(100);

        }
        return null;

      }

    }

  }

onProgressUpdate ,使用onProgressUpdate值添加到當前進度中:

vProgressBar.setProgress(vProgressBar.getProgress() + values[0]);

doInBackground ,您大概擁有“項目”,例如:

publishProgress(item.getPercentageValue());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM