Gabriel assenga:
Me he puesto en mi lista onItemClickListener vista, artículos, incluyendo videos, imágenes y texto. Cuando el usuario toque en el video en vista de lista que juega bien. Ahora dentro del método de playVideo () me puse a la vista de lista nula de manera que el usuario no debe interactuar con el vídeo durante la reproducción.
Quiero recuperar / rese t respaldar la onitemClicklisterner a cierto después de que termine de vídeo para jugar. ¿Cómo se implementa esto, amablemente Assist.
private void playVideo() {
listOfMessages.setOnItemClickListener(null);
videoText.setVideoURI(Uri.parse(chattVideo));
frameText.setVisibility(View.VISIBLE);
imageVideo.setVisibility(View.INVISIBLE);
videoText.setVisibility(View.VISIBLE);
btnText.setVisibility(View.GONE);
try {
videoText.setMediaController(mediaControllerText);
mediaControllerText.show();
videoText.seekTo(1);
videoText.pause();
videoText.stopPlayback();
videoText.seekTo(1);
videoText.resume();
progressBarMessage.setVisibility(View.GONE);
videoText.start();
videoText.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mp.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
@Override
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
progressBarMessage.setVisibility(View.GONE);
mp.start();
}
});
}
});
videoText.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
listOfMessages.setOnItemClickListener(this);// if I do like this android studio complains it cannot be applied inside MediaPlayer.OnCompletionListener
btnText.setVisibility(View.VISIBLE);
}
});
videoText.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
FancyToast.makeText(getContext(),"Something went wrong!",FancyToast.LENGTH_LONG,
FancyToast.ERROR,R.drawable.wheel,false).show();
return false;
}
});
} catch (Exception e) {
PBar.setVisibility(View.GONE);
FancyToast.makeText(getContext(),e.getMessage(),
FancyToast.LENGTH_LONG,FancyToast.WARNING,R.drawable.wheel,false).show();
}
}
Para Rajpurohit:
Puede crear un método como el siguiente para hacer la materia requerida
Aquí es pseudocódigo
private void setListener(boolean isPlaying){
if(isPlaying){
your_listview.setOnItemClickListener(null);
}
else{
your_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//YOUR CODE
}
});
}
}
Ahora, sólo tiene que llamar setListener(true)
cuando se reproduce el vídeo o de lo contrariosetListener(false)