No właśnie, jak to jest z tymi dwiema metodami?
- OnItemClick
- OnItemSelected
Obie nadpisujemy implementując ich interfejsy (OnItemClickListener i OnItemSelectedListener)
OnItemClick możemy napisać w ten sposób:
1 2 3 4 5 6 7 8 | OnItemClickListener onItemClickListener = new OnItemClickListener() ; |
OnItemSelected z kolei tak:
1 2 3 4 5 6 7 8 9 10 11 12 13 | OnItemSelectedListener onItemSelectedListener = new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long itemId) { ((TextView)findViewById(R.id.selection)).setText("Wybrales - "+items[position]); } @Override public void onNothingSelected(AdapterView<?> parent) { ((TextView)findViewById(R.id.selection)).setText("Nic nie wybrales"); } }; |
I teraz pytanie: która z tych metod zostanie kiedy 'uruchomiona'?
czytając 'Android: Beginning 2' w przykładach znajdujemy użycie 'onItemSelected' np. na Grid'zie, aby coś zrobić po dotknięciu elementu w siatce. To nie zadziała. Po części.
Kiedy dotykamy elementu zostaje wywołana metoda 'onItemClick', bo jest to kliknięcie, a nie zaznaczenie.
Aby dostać się do 'onItemSelected' musimy element zaznaczyć, użyć np. trackball'a, którego dodaje HTC do niektórych modeli telefonów, nie wiem jak jest z 'selectowaniem' na innych urządzeniach. w inny sposób nie udało mi się wywołać tej metody dotykając ekranu.
Brak komentarzy:
Prześlij komentarz