88 Глава 4 • Введение в 2D-графику
keys[2] = findViewById(R.id.keypad_3);
keys[3] = findViewById(R.id.keypad_4);
keys[4] = findViewById(R.id.keypad_5);
keys[5] = findViewById(R.id.keypad_6);
keys[6] = findViewById(R.id.keypad_7);
keys[7] = findViewById(R.id.keypad_8);
keys[8] = findViewById(R.id.keypad_9);
}
Рис . 4 .7 . Неправильные значения скрыты в
окне экранной клавиатуры
Метод
setListeners()
перебирает в�е клавиши �кранной клавиатуры и у�танав�
ливает обработчики для каждой из них� Также он у�танавливает
обработчики для
в�е�о окна клавиатуры�
Sudokuv2/src/org/example/sudoku/Keypad.java
private void setListeners() {
for (int i = 0; i < keys.length; i++) {
final int t = i + 1;
keys[i].setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
returnResult(t);
}});
}
keypad.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
returnResult(0);
}});
}
4 .4 . Конец истории
89
�о�да и�рок выбирает одну из кнопок на �кранной клавиатуре� вызывает�я
�етод
returnResult()
� �ифрой �той кнопки� Е�ли и�рок выбрал �е�то� на которо�
нет кнопки� вызывает�я �етод
returnResult()
� нуле�� что указывает на то� что тайл
должен быт� очи�ен�
onKeyDown()
вызывает�я� ко�да и�рок и�пол�зует обычну� клавиатуру для ввода
чи�ел:
Sudokuv2/src/org/example/sudoku/Keypad.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
int tile = 0;
switch (keyCode) {
case KeyEvent.KEYCODE_0:
case KeyEvent.KEYCODE_SPACE: tile = 0; break;
case KeyEvent.KEYCODE_1: tile = 1; break;
case KeyEvent.KEYCODE_2: tile = 2; break;
case KeyEvent.KEYCODE_3: tile = 3; break;
case KeyEvent.KEYCODE_4: tile = 4; break;
case KeyEvent.KEYCODE_5: tile = 5; break;
case KeyEvent.KEYCODE_6: tile = 6; break;
case KeyEvent.KEYCODE_7: tile = 7; break;
case KeyEvent.KEYCODE_8: tile = 8; break;
case KeyEvent.KEYCODE_9: tile = 9; break;
default:
return super.onKeyDown(keyCode, event);
}
if (isValid(tile)) {
returnResult(tile);
}
return true;
}
Е�ли �ифра подходит для теку�е�о тайла� то вызывает�я
returnResult()�
иначе
данные и�нориру�т�я�
Метод
isValid()
проверяет� являет�я ли заданная �ифра подходя�ей для теку�ей
пози�ии:
Достарыңызбен бөлісу: