使用扭曲返回 ListView 中的下一个项目

Posted

技术标签:

【中文标题】使用扭曲返回 ListView 中的下一个项目【英文标题】:Return the Next Item in a ListView with a twist 【发布时间】:2014-03-28 00:36:52 【问题描述】:

过去几天我一直在使用 C# 中的 NAudio 开发基于 ListView 的音乐播放器。现在是我开始处理前/前功能的时候了,但我遇到了一些困难。我需要选择我拥有的 listView 中的下一项。但是,它不是由用户选择的,而是通过其旁边的复选标记标记为正在播放,并带有默认的 ListView 复选框。

它是这样的:

我有一个任何东西都可以访问的公共字符串;它包含当前播放曲目的文件名。每当我单击播放曲目时,我都有一个 foreach 循环,它循环遍历此 listView 中的所有项目(我在另一个选项卡中有第二个列表视图,其中包含我单击播放的所有音乐),如果文件名子项和当前正在播放的字符串匹配,然后它会检查它。如果不是,则取消选中。

我的主类中有一个事件处理程序,用于在轨道上停止播放。将要进入的内容将是下一曲目的逻辑。我大致知道该怎么做,但我不知道该怎么做

    获取旁边有复选标记的项目的索引 获取它之后的项目 检索其文件名子项 播放它

那么做这件事的方法是什么?我还是对 listViews 之类的有点困惑。

更新:另外,怎么可能禁用用户检查复选框,当它是双击时我已经关闭了它,但是当用户自己检查复选框时呢?

更新 2:这是我正在处理的一些暂存代码的事件处理程序

public void waveOutDevice_PlaybackStopped(object sender, StoppedEventArgs e)

    string fileName;
    foreach (ListViewItem lvi in playListView.Items)
    
        fileName = lvi.SubItems[1].Text;
        if(lvi.Checked == true)
        
            int finIndex;
            lvi.Checked = false;
            finIndex = lvi.Index;
            //finIndex + 1;
        
    

【问题讨论】:

你能分享你的事件处理程序吗?没有一些代码很难说。旁注 - 您可以使用 readonly 属性禁止用户选中复选框。 现在,事件处理程序只有一些我正在试验的临时代码。我现在正在用它编辑帖子 【参考方案1】:

我想你就在那里。你需要做的就是这样的:

public void waveOutDevice_PlaybackStopped(object sender, StoppedEventArgs e)

    string fileName;
    foreach (ListViewItem lvi in playListView.Items)
    
        fileName = lvi.SubItems[1].Text;
        if(lvi.Checked == true)
        
            int finIndex;
            lvi.Checked = false;
            finIndex = lvi.Index;
            finIndex++;
            if(finIndex < playListView.Count())
            
                var nextGuy = playListView.Items[finIndex];
                nextGuy.Checked = true;
                //Play the file and what not. 
            


        
    

【讨论】:

看起来它会工作,但它不会但不要担心,我很确定这是一个 NAudio 问题。我会再玩一些。另外,在第二个 if 中,您的意思是 playListView.Items.Count 吗?

以上是关于使用扭曲返回 ListView 中的下一个项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在扭曲的ALPN协商中侦听特定的下一个协议?

将所选数据的 ListView 显示到 textView 中的下一个 Activity

Android - ArrayAdapter 重复 ListView 项目

获取 JQuery 中的下一个元素属性

显示扭曲图像的列表视图控件

如何根据 android studio 中的 listview 项目点击更改活动图像和文本? java 或 kotlin