2015-01-08 134 views
0

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

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; 

     } 

    } 

    } 

回答

0

onProgressUpdate,用這個值添加到當前進度:

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

而在doInBackground,你可能有你的 「商品」,是這樣的:

publishProgress(item.getPercentageValue()); 
+0

我'對不起。我瞭解了代碼的第一行。但不確定這裏的'物品'是什麼以及它是如何工作的?謝謝。 – user3782869

+0

我猜這一點真的是因爲它不在你的代碼中......但你提到你想「添加另一個具有百分比值的項目」,所以我說的百分比值是你會傳遞給'publishProgress '。 – James