0

我正在为学校制作一个小游戏,我想将 ProgressBar 用作 XP(体验)栏。

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());

等于升级所需的最大经验值。和

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

等于玩家当前拥有的xp。

进度条出现,没有错误发生。它只是不会显示进度。

有任何想法吗?

4

2 回答 2

0

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

编辑:

您尚未设置最大值:

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

这将使您的进度条正常工作。

于 2013-02-13T06:50:03.417 回答
0

嘿,while结尾有一个分号....删除它然后尝试....

而(mProgressStatus < XPNEXT);

应该是 while (mProgressStatus < XPNEXT)

于 2013-02-13T06:52:51.320 回答