Java android中的进度条更新
我正在开发一个android应用程序。在垂直进度条上工作。Java android中的进度条更新,java,android,android-progressbar,Java,Android,Android Progressbar,我正在开发一个android应用程序。在垂直进度条上工作。当我添加新项目时,该项目与某个百分比值关联,例如30%。进度条需要从0%更新到30%。如果我添加另一个百分比值为40%的项目,则进度条需要从30%更新到70%(30+40)我该怎么做。示例代码将很有帮助。我已经把代码贴在这里了 public class VerticalProgressBar extends Activity { Button buttonStart; ProgressBar vProgressBar; @Overri
当我添加新项目时,该项目与某个百分比值关联,例如30%。
进度条需要从0%更新到30%。如果我添加另一个百分比值为40%的项目,则进度条需要
从30%更新到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;
}
}
}
公共类VerticalProgressBar扩展活动{
按钮启动;
ProgressBar vProgressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.verticalprogressbar);
buttonStart=(按钮)findViewById(R.id.start);
vProgressBar=(ProgressBar)findViewById(R.id.vProgressBar);
buttonStart.setOnClickListener(新建Button.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
按钮开始。可点击设置(错误);
新建asyncTaskUpdateProgress().execute();
}
});
}
公共类asyncTaskUpdateProgress扩展了AsyncTask{
智力进步;
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
按钮开始。可点击设置(真);
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
进度=0;
}
@凌驾
受保护的void onProgressUpdate(整型…值){
//TODO自动生成的方法存根
vProgressBar.setProgress(值[0]);
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
而(进度<100){
进步++;
出版进度(progress);
系统时钟。睡眠(100);
}
返回null;
}
}
}
在onProgressUpdate
中,使用此选项将值添加到当前进度中:
vProgressBar.setProgress(vProgressBar.getProgress() + values[0]);
在doInBackground
中,您可能有您的“物品”,类似于:
publishProgress(item.getPercentageValue());
我很抱歉。我知道你的第一行密码。但不确定这里的“项目”是什么以及它是如何工作的?谢谢。我猜到了,真的,因为它不在你的代码中。。。但是您提到您想“添加另一个具有百分比值的项目”,所以我的意思是百分比值就是您要传递给
publishProgress
。