başlamak gerekir, olması gerektiği Sonunu genişletmek ve ona kendi dinleyicinizi eklemek nispeten kolaydır. biz şimdi kendi dinleyici kanca ki tek fark olmak üzere düzenli bir VideoView
kullanımıyla aynı işlevi kullanma
public class CustomVideoView extends VideoView {
private PlayPauseListener mListener;
public CustomVideoView(Context context) {
super(context);
}
public CustomVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomVideoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setPlayPauseListener(PlayPauseListener listener) {
mListener = listener;
}
@Override
public void pause() {
super.pause();
if (mListener != null) {
mListener.onPause();
}
}
@Override
public void start() {
super.start();
if (mListener != null) {
mListener.onPlay();
}
}
public static interface PlayPauseListener {
void onPlay();
void onPause();
}
}
:
özel VideoView sonra en temel şekliyle böyle bir şey olmazdı ona.
// Some other code above...
CustomVideoView cVideoView = (CustomVideoView) findViewById(R.id.custom_videoview);
cVideoView.setPlayPauseListener(new CustomVideoView.PlayPauseListener() {
@Override
public void onPlay() {
System.out.println("Play!");
}
@Override
public void onPause() {
System.out.println("Pause!");
}
});
cVideoView.setMediaController(new MediaController(this));
cVideoView.setVideoURI(...);
// or
cVideoView.setVideoPath(...);
// Some other code below...
Son olarak, ayrıca xml düzeni beyan edebilir ve (yukarıda gösterildiği gibi) şişirmek - sadece kullanım <package_name>.CustomVideoView
emin olun. Örnek:
<mh.so.CustomVideoView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/custom_videoview" />
Genius! Teşekkürler bayım, mükemmel çalıştı. +50 sana. Ben java'yı tanıyana kadar bekleyemem ve ben de eylem senaryosu gibi diğer şeyleri biliyorum. – Ronnie
Yardım edilmekten memnun oldum. :) Bu arada, "süper" ye bir çağrı genellikle bir yöntemi geçersiz kılma ile bağlantılı olarak yapılır. Geçersiz kılarak temel/süper/üst sınıfın yöntemini temel olarak yeniden tanımladınız. Bu tür geçersiz kılınan bir yöntemde "süper" yi çağırırsanız, bu işlevin işlevselliğini koruyacaksınız, amacınız * işlevine * eklenmekse yapmak istediğiniz şeydir. Bazen * işlevini değiştirmek isteyebilirsiniz, ancak bu durumda istediğiniz işlevi "süper" yi arayarak alabilirsiniz. –
Tamam, düşündüğüm ve çok faydalı olduğunu düşündüğüm, teşekkürler – Ronnie