使用扭曲返回 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 中的下一个项目的主要内容,如果未能解决你的问题,请参考以下文章
将所选数据的 ListView 显示到 textView 中的下一个 Activity
Android - ArrayAdapter 重复 ListView 项目
如何根据 android studio 中的 listview 项目点击更改活动图像和文本? java 或 kotlin