ProgressBar无法加载

问题描述:

我正在为学校制作一款小型游戏,并且我想使用ProgressBar作为XP(体验)栏。ProgressBar无法加载

private static final int PROGRESS = 0x1; 
private ProgressBar mProgress; 
private Handler mHandler = new Handler(); 
private int mProgressStatus; 

mProgress = (ProgressBar) findViewById(R.id.xpBar); 

new Thread(new Runnable() { 
     public void run() { 
      int xp = Integer.parseInt(textViewXPValue.getText().toString()); 
      int XPNEXT = Integer.parseInt(textViewXpNextLevel.getText().toString()); 
      while (mProgressStatus < XPNEXT) { 
       mProgressStatus = xp; 

       mHandler.postDelayed(new Runnable() { 
        public void run() { 
         mProgress.setProgress(mProgressStatus); 
        } 
       }, 10); 
      } 
     } 
    }).start(); 

变量:

Integer.parseInt(textViewXpNextLevel.getText().toString()); 

等于水平,直至所需的最大XP。并且

Integer.parseInt(textViewXPValue.getText().toString()); 

等于当前玩家拥有的xp。

进度条显示并且没有发生错误。它只是不会显示进度。

任何想法?

+0

使用postDelayed岗位,而不是更新ProgressStatus – 2013-02-13 06:43:20

+0

发布与postDelayed你的代码什么ü试图 – 2013-02-13 06:48:49

while(....)行末尾有一个分号。 它不会让你的while块执行。 摆脱它,它会工作。

编辑:

您没有设置最大值:

mProgress = (ProgressBar) findViewById(R.id.progressbar); 
       mProgress.setMax(100); 

这会让你的进度条,做工精细。

+0

确定这做一些事情发生。现在进度条只显示它已满。即使状态小于最大值 – 2013-02-13 06:55:27

嘿在同时的端部分号....移除N,然后尝试....

而(mProgressStatus < XPNEXT);

应该是同时(mProgressStatus < XPNEXT)