亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我的 Progressbar 達到最大值時,如何重置它并給它新的值?

當我的 Progressbar 達到最大值時,如何重置它并給它新的值?

繁花如伊 2023-03-31 17:01:08
我正在制作一個唱首歌游戲,您可以在其中點擊一個按鈕來增加能量。當我的進度條達到最大值時,它會重置并將最大值設置為下一個更高的值(一切正常)。但是當我再次點擊時,進度會增加舊的最大值,但之后它會正常繼續。我不知道如何解決這個問題public class MainActivity extends AppCompatActivity {    public int MinPoints = 0;    public int MaxPointsSSJ = 10;    public int MaxPointsSSJ2 = 20;    public int MaxPointsSSJ3 = 50;    public int Progress;    private void checker(int currentPoints, int maxPoints, intnewmaxPoints, ImageView anzeige, int bild, ProgressBar pb){        if (currentPoints == maxPoints)            maxPoints = newmaxPoints;            pb.setMax(newmaxPoints);            anzeige.setImageResource(bild);            pb.setProgress(currentPoints - maxPoints);            }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final ImageView Anzeige = (ImageView) findViewById(R.id.imageView);        final ProgressBar KiAnzeige = (ProgressBar) findViewById  (R.id.progressBar);        Button MehrEnergie = (Button) findViewById(R.id.button);    KiAnzeige.setMax(MaxPointsSSJ);    KiAnzeige.setMin(MinPoints);    KiAnzeige.setProgress(0);    Progress = KiAnzeige.getProgress();    MehrEnergie.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            Progress++;            KiAnzeige.setProgress(Progress);            if (Progress == MaxPointsSSJ){                checker(Progress, MaxPointsSSJ, MaxPointsSSJ2, Anzeige, R.drawable.goku_ssj1, KiAnzeige);            }        if (Progress == MaxPointsSSJ2){            checker(Progress, MaxPointsSSJ2, MaxPointsSSJ3, Anzeige, R.drawable.goku_ssj2, KiAnzeige);        }        }    });}}
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

設置你的progressbar inderminate state,這樣它會無限顯示進度。

KiAnzeige.setIndeterminate(true);


查看完整回答
反對 回復 2023-03-31
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您的OnClick函數將進度條進度遞增 1,但在您的checker函數中,您將進度條進度設置為 0,因為 currentPoints 等于 maxPoints。

所以在 中OnClick,它看起來像 1/10、2/10、3/10、... 10/10,然后觸發checker,將其設置為 0/20,然后返回到OnClick繼續為 11/ 的位置20、12/20、13/20 等

您可以通過將最大值更改為新最大值與舊最大值之間的差值然后將 Progress 設置回 0 或在設置進度時考慮差值來解決此問題。

currentPoints或者,如果您希望進度條“加寬”以便仍然顯示之前的點擊,但進度條的比例增加了,您可以在函數中設置進度條checker。


查看完整回答
反對 回復 2023-03-31
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

嘗試這個


MehrEnergie.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View v) {

            ++Progress;

            KiAnzeige.setProgress(Progress);

            if (Progress == MaxPointsSSJ){

                checker(Progress, MaxPointsSSJ, MaxPointsSSJ2, Anzeige, R.drawable.goku_ssj1, KiAnzeige);

            }

        if (Progress == MaxPointsSSJ2){

            checker(Progress, MaxPointsSSJ2, MaxPointsSSJ3, Anzeige, R.drawable.goku_ssj2, KiAnzeige);

        }

        }

    });


查看完整回答
反對 回復 2023-03-31
  • 3 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號