Android! Разработка мобильных


Sudokuv2/src/org/example/sudoku/Keypad.java



Pdf көрінісі
бет58/87
Дата26.01.2023
өлшемі3,48 Mb.
#63133
1   ...   54   55   56   57   58   59   60   61   ...   87
Байланысты:
Привет, Андроид Разработка мобильных приложений

 Sudokuv2/src/org/example/sudoku/Keypad.java
private void findViews() {
keypad = findViewById(R.id.keypad);
keys[0] = findViewById(R.id.keypad_1);
keys[1] = findViewById(R.id.keypad_2);


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()
проверяет� являет�я ли заданная �ифра подходя�ей для теку�ей 
пози�ии: 


Достарыңызбен бөлісу:
1   ...   54   55   56   57   58   59   60   61   ...   87




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет