第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何修復(fù)遍歷此數(shù)組列表?

如何修復(fù)遍歷此數(shù)組列表?

蠱毒傳說 2023-06-04 15:19:21
我使用兩個按鈕在包含 12 個月的數(shù)組列表中來回迭代,當(dāng)我到達(dá)最后一個元素并按下 prevButton 時應(yīng)用程序崩潰,當(dāng)我返回第一個元素并點(diǎn)擊 nextButton 時也會發(fā)生這種情況,如何我要修復(fù)我的 if 語句嗎?我嘗試用 >= 和 <= 來做,但沒有用nextButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (i < months.size()) {                    Month month = months.get(i);                    monthTextView.setText("" + month);                    i++;                }            }        });        prevButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (i >= 0) {                    Month month = months.get(i);                    monthTextView.setText("" + month);                    i--;                }            }        });
查看完整描述

2 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊

最后一次單擊您i無論如何都將值更改為-1或通過在訪問最后一個/第一個元素后months.size()添加/減去1


讓我們仔細(xì)看看這個片段:


if (i >= 0) { // let us assume that i = 0, we are getting inside

    Month month = months.get(i); // you are assigning first element of months, everything is fine

    monthTextView.setText("" + month); // some data operation - irrelevant

    i--; // anyway you are updating i to [i = -1]

}


// one "next" click later...


if (i < months.size()) { // condition is fine because i = -1

    Month month = months.get(i); // oooops tried to access months[-1] - ERROR

    monthTextView.setText("" + month);

    i++;

}

第二種情況也發(fā)生了同樣的情況


你應(yīng)該做什么 -i只有當(dāng)當(dāng)前值是強(qiáng)值> 0或< month.size() - 1


if (i >= 0) {

    Month month = months.get(i);

    monthTextView.setText("" + month);

    i = (i > 0) ? (i - 1) : 0; // for example like this

}


查看完整回答
反對 回復(fù) 2023-06-04
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個贊

當(dāng)你到達(dá)最后一個或第一個索引時,最終值將是它的-1maxsize,但是當(dāng)你點(diǎn)擊相反的按鈕時,條件仍然通過,例如當(dāng)你已經(jīng)在下-1一個按鈕條件仍然通過時-1< 比month.size()你的條件應(yīng)該是類似于 if i-1 <= 0 然后設(shè)置 i

編輯:我認(rèn)為發(fā)布這個的人意味著當(dāng) ( i == months.size() - 1 ) 和你說下一個按鈕時,它工作正常,因?yàn)樗亲詈笠粋€月但然后我增加了一個,那就是, i == months.size() 現(xiàn)在是真的。然后,當(dāng)您按下 prevButton 時,僅檢查 i >= 0 而不是 i < months.size()。因此,數(shù)組索引現(xiàn)在越界了。您應(yīng)該檢查兩種按鈕方法中的索引范圍。


查看完整回答
反對 回復(fù) 2023-06-04
  • 2 回答
  • 0 關(guān)注
  • 148 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號