2 Оқиғалар қабылдау
Оқиға қабылдаушы - бұл бір кері байланыс әдісі бар Көрініс класындағы интерфейс. Бұл әдістер пайдаланушы өзара іс-қимыл нәтижесінде пайдаланушы интерфейсі нысан қабылдағыш тіркелген, онда дисплей объект көрінісі, белсендірілген бар кезде, платформа Android деп аталатын болады.
Оқиғадағы қабылдағышқа қосылған интерфейстер келесі қоңырау тәсілдері болып табылады:
onClick ()
View.OnClickListener нысанынан. пайдаланушы мүшесі (сенсорлы режимі) тиіп, немесе көрсеткі пернелермен элементке көңіл бөлу қажет жылжыту немесе трекбол және «енгізіңіз» немесе трекбол итермелейді тиісті пернесін басқан кезде, Бұл әдіс деп аталады.
onLongClick ()
View.OnLongClickListener нысанынан. пайдаланушы элемент тиіп және (Touch режимінде), оны ұстап немесе көрсеткі пернелердің немесе трекбол қозғалыстар мен рет элементке фокус қабылдайды және «енгізіңіз» немесе трекбол (бір секунд) тиісті негізгі өткізеді Бұл әдіс кезінде деп аталады.
onFocusChange ()
View.OnFocusChangeListener ішінен. Бұл әдіс пайдаланушы жылжыту түймелерін немесе трекболды пайдаланып элементке немесе элементке жылжытқанда шақырылады.
onKey ()
View.OnKeyListener ішінен. Бұл әдіс пайдаланушы фокусты элементке жылжытқанда және құрылғының аппараттық пернесін басқанда немесе шығарғанда шақырылады.
onTouch ()
View.OnTouchListener нысанынан. Бұл әдіс пайдаланушы сенсор оқиғасы деп есептелетін әрекетті орындағанда, мысалы, басу, шығарылым немесе экрандағы кез келген қимылды орындайды (элементтің шекарасында).
onCreateContextMenu ()
View.OnCreateContextMenuListener нысанынан. Бұл әдіс мәтінмәндік мәзір жасалған кезде шақырылады (ұзын «ұзақ баспасөз» нәтижесі ретінде). Меню үшін Жасақтаушы нұсқаулығындағы контекстік мәзірлерді талқылаңыз.
Бұл әдістер тиісті интерфейстердің жалғыз құрамдас бөлігі болып табылады. Осы әдістердің бірін анықтау және оқиғаны өңдеу үшін, процестегі кірістірілген интерфейсті енгізіңіз немесе оны анонимдік сынып ретінде анықтаңыз. Содан кейін орындалу данасын тиісті View.set ... Listener () әдісіне өткізіңіз. (Мысалы, call setOnClickListener () және оны OnClickListener іске асырыңыз.)
Келесі мысалда батырманың басуына арналған оқиғалар қабылдағышын қалай тіркеу керек екендігі көрсетілген.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
Операцияңыздың бір бөлігі ретінде OnClickListener бағдарламасын іске асыру әлдеқайда ыңғайлы шығар. Бұл сыныптың қосымша жүктемесін және объектіні таңдауды жояды. Мысалы:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
...
}
Жоғарыда келтірілген мысалдағы onClick callback () қайтару мәнін қамтымайтынын ескеріңіз, бірақ оқиға қабылдағышының кейбір басқа әдістері логикалық мәнді қайтаруы керек. Мұның себебі оқиғаға байланысты. Мәндерді қайтаратын кейбір әдістерге төменде келтірілген:
• onLongClick () - бұл әдіс осы оқиғаны өңдегеніңізді көрсететін логикалық мәнді қайтарады және оны бұдан былай сақтауға болмайды. Атап айтқанда, шындықты қайтарыңыз, бұл іс-шараны өңдегеніңізді және оны тоқтату керек екенін көрсету үшін; егер оны өңдемеген болсаңыз және / немесе оқиғаны кез-келген басу оқиғасының кез-келген басқа қабылдаушылары үшін жалғастыру керек болса, жалғанды қайтарыңыз.
• onKey () - бұл әдіс осы оқиғаны өңдегеніңізді көрсететін логикалық мәнді қайтарады және одан кейін сақталмауы керек. Атап айтқанда, шындықты қайтарыңыз, бұл іс-шараны өңдегеніңізді және оны тоқтату керек екенін көрсету үшін; егер оны өңдемеген болсаңыз және / немесе оқиғаны кез-келген басу оқиғасының кез-келген басқа қабылдаушылары үшін жалғастыру керек болса, жалғанды қайтарыңыз.
• onTouch () - Бұл әдіс ресивердің осы оқиғаны өңдейтінін көрсететін логикалық мәнді қайтарады. Бұл оқиға бір-бірінің артынан келе жатқан бірнеше әрекетке әкелуі мүмкін. Сондықтан, егер сіз соққы оқиғасын қабылдаған кезде өтірік қайтарсаңыз, оқиғаны өңдемегеніңізді және осы оқиғаның нәтижесінде кейінгі әрекеттерге мүдделі емес екенін көрсетесіз. Тиісінше, бұл әдіс осы іс-шарадағы қимылдар немесе ықтимал босату әрекеттері сияқты басқа да әрекеттерге шақырылмайды.
Аппараттық кілттер оқиғалары әрдайым фокустағы орналасқан Көрініс нысанына түседі. Олар жіберілген нысандардың иерархиясынан басталады, одан кейін тиісті орынға жеткенше төменірек жіберіледі. Көрсетілген нысаныңыз (немесе көрсетілетін нысаныңыздың еншілес нысаны) фокуста болса, оқиға dispatchKeyEvent () әдісі арқылы қалай жүретінін көре аласыз. Сондай-ақ, сіз көрмеге қойылған объекті арқылы пернелерді басу үшін onKeyDown () және onKeyUp () әдістерін пайдаланып операцияңыздың ішіндегі барлық оқиғаларды ала аласыз.
Достарыңызбен бөлісу: |