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

プレイヤーが現在持っている経験値と同じです。

プログレス バーが表示され、エラーは発生しません。進行状況が表示されないだけです。

何か案は?

4

2 に答える 2

0

while (....) 行の最後にセミコロンがあります。while ブロックを実行させていません。それを取り除くと、うまくいきます。

編集:

最大値が設定されていません:

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

これにより、進行状況バーが正常に機能します。

于 2013-02-13T06:50:03.417 に答える
0

while の最後にセミコロンがあります....それを削除してから試してください....

while (mProgressStatus < XPNEXT);

(mProgressStatus < XPNEXT) の間である必要があります。

于 2013-02-13T06:52:51.320 に答える