gpt4 book ai didi

java - onItemClickListener 设置为 null 后如何重置回 true?

转载 作者:行者123 更新时间:2023-12-02 08:52:10 25 4
gpt4 key购买 nike

我在 ListView 中设置了 onItemClickListener,项目包括视频、图像和文本。当用户点击 ListView 中的视频时,它可以正常播放。现在,在 playVideo() 方法中,我将 ListView 设置为 null,以便用户在播放时不应与视频交互。

我想在视频播放完毕后重新获得/重置onitemClicklisternertrue。我该如何实现这个,请帮忙。

    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();
}

}

最佳答案

您可以创建如下方法来执行所需的操作

这是伪代码

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
}
});
}
}

现在,只需在视频播放时调用 setListener(true) 即可 setListener(false)

关于java - onItemClickListener 设置为 null 后如何重置回 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60703634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com