上次製作了一個可以輸入數字的dialog,但他本身還是有非常多的問題,今天就讓我們來一一解決,首先是沒有輸入任何東西會閃退這點,加個if去判斷就好了,但記得要轉換資料型態的話不要在這個if外面!!不要在這個if外面!!很重要所以說兩次(轉String可以,但轉int那些先不要)。
就會長這個樣子
onClick裡的程式:
if (etEditText.getText().toString().equals("")) {
} else {
String strEdittext = etEditText.getText().toString();
m_alBingoButtons.get(m_iNowIndex).getButton().setText(strEdittext.replaceAll("^(0+)", ""));
m_alBingoButtons.get(m_iNowIndex).saveNumber(Integer.parseInt(strEdittext.replaceAll("^(0+)", "")));
}
這樣就可以解決沒有輸入東西給輸入框,結果閃退的問題啦。
再來就是範圍跟數字重複的問題了,這個前面有處理過了,可以去參考一下
大致上就是長這樣,判斷範圍對不對,判斷完後去判斷數字是否重複,都跟前面很類似
onClick裡的程式:
if (etEditText.getText().toString().equals("")) {
} else {
String strEditText = etEditText.getText().toString();
BingoButton bingoButton = m_alBingoButtons.get(m_iNowIndex);
int iEditText = Integer.parseInt(strEditText);
if (Integer.parseInt(strEditText) > m_iSize * 10 || Integer.parseInt(strEditText) < 1) {
showDialogOverRange();
} else {
boolean bCheck = true;
for (int i = 0; i < m_iSize * m_iSize; i++) {
if (strEditText.equals("")) {
bCheck = false;
} else if (iEditText == m_alBingoButtons.get(i).getNumber()) {
showDialogRepeatNumber();
bCheck = false;
break;
}
}
if (bCheck == true) {
bingoButton.getButton().setText(strEditText.replaceAll("^(0+)", ""));
bingoButton.saveNumber(Integer.parseInt(strEditText.replaceAll("^(0+)", "")));
}
}
}
這樣就完成輸入框了,現在看起來好像一切完美,但有些人的手機是不會鎖螢幕固定方向的,現在只要一旋轉螢幕就會出現問題,他會直接重新onCreate,這件事也會影響到遊戲體驗(如果有人不小心轉到的話),所以之後幾期會來探討要怎麼處理這個問題,以及處理完後出現的延伸問題。