Sınıfım için kendi olay dinleyicimi yapmak istediğimi söyleyin, bunu nasıl yaparım? Bir iş parçacığını el ile sürdürmem gerekiyor mu?Android Özel Etkinlik Dinleyicisi
cevap
public class CustomView extends View(){
OnCustomEventListener mListener;
:
://some code
:
:
etkinlik tarafından uygulanacak bir arabirim oluşturun:
public interface OnCustomEventListener {
void onEvent();
}
public void setCustomEventListener(OnCustomEventListener eventListener) {
mListener = eventListener;
}
Şimdi olay aslında oluştuğu zaman bilmemiz gerekir. kullanıcı ekranda bir noktaya temas Örneğin, onTouchEvent yöntemi geçersiz:
onTouchEvent(MotionEvent ev) {
if (ev.getAction==MotionEvent.ACTION_DOWN) {
if(mListener!=null)
mListener.onEvent();
}
}
Benzer şekilde, istediğiniz belirli bir etkinlik oluşturabilirsiniz. (Örnekler aşağıya doğru olabilir, tam olarak 2 saniye bekleyiniz ve serbest bırakma - dokunma olayı içinde bir mantık yapmanız gerekir). etkinlik olarak
, aşağıdaki gibi bir EventListener ayarlamak için customView nesnesini kullanabilirsiniz:
customView.setCustomEventListener(new OnCustomEventListener() {
public void onEvent() {
//do whatever you want to do when the event is performed.
}
});
OnCustomEventListener arayüz tanımı parantezler bir yazım hatası mı [Custom Dinleyiciler Oluşturma] codepath konusuna bakın bakalım? –
Oops! evet bir yazım hatası, düzeltildi. teşekkürler – rDroid
rDroid, örnek için teşekkürler! OnCustomEventListener arabirimi, CustomView sınıfının içinde veya dışında bildirilsin mi? – Brabbeldas
O
İlk bir arayüz sınıfı oluşturmak şu şekilde yapılabilir:
public interface OnStopTrackEventListener {
public void onStopTrack();
}
Ardından, arabirimi denetleyen sınıfı oluşturun:
public class Player {
private OnStopTrackEventListener mOnStopTrackEventListener;
public void setOnStopTrackEventListener(OnStopTrackEventListener eventListener)
{
mOnStopTrackEventListener = eventListener;
}
public void stop()
{
if(mOnStopTrackEventListener != null)
{
mOnStopTrackEventListener.onStopTrack();
}
}
}
Hepsi bu kadar. Şimdi
Player player = new Player();
player.stop(); //We are stopping music
player.setOnStopTrackEventListener(new OnStopTrackEventListener() {
@Override
public void onStopTrack() {
//Code to work when music stops
}
});
Güzel kod. – Dskato
kullanmak (https://guides.codepath.com/android/Creating-Custom-Listeners) – Suragch