选择问题(列表/多选列表)codenameone

3

我已经按照以下步骤获取了在watchVideo表单中显示的列表中所选项的json值...但是是否有任何方法可以获取下一个列表项的值,以便我可以在watchVideo表单中设置下一个按钮并直接播放下一个视频...

    findYoutubeMultiList(f).setModel(new com.codename1.ui.list.DefaultListModel(mData));
        findYoutubeMultiList(f).addActionListener((e) -> {
                    selection = (Map<String, String>) findYoutubeMultiList(f).getSelectedItem();
indexSelection = findYoutubeMultiList(f).getSelectedIndex();
**//i can get the index of selected item by above indexSelection but how to get the value of the incremented index??**
                    showForm("WatchVideo", null);
                });

编辑:

 for (int i = 0; i < response.size(); i++) {
                        Hashtable hm = (Hashtable) response.get(i);
                        Hashtable snippet = (Hashtable) hm.get("snippet");
                        HashMap<String, Object> m = new HashMap<String, Object>();
                        videoResource = (Hashtable) snippet.get("resourceId");
                        videoId = videoResource.get("videoId").toString();
                        m.put("video", videoId);
                        mData.add(m);
                    }

视频观看表单:

protected void beforeWatchVideo(Form f) {

        for (int i = 0; i < mData.size(); i++) {
            //how to get the position of selection and more
 importantly how to get the values of incremented index
        }
1个回答

1
循环遍历您的多列表源并获取所选项目的索引,然后只需递增索引并获取该索引处的值,如果要播放上一个,请递减。记得将索引与0和源长度进行比较以避免NullPointer。

你好 Diamond... 我不明白你所说的 multilist 的来源是什么.. 我已经更新了问题.. 你是指我在编辑部分提到的那一部分吗? - beck
确保您的mData是静态的,并且可以在WatchVideo表单上访问。在WatchVideo中,循环遍历mData并找到selection的位置。现在增加该位置并将选择的值设置为新值并播放。 - Diamond
对不起,Diamond...你能再具体一些吗?是的,我可以从watchVideo表单访问mData。for (int i = 0; i < mData.size(); i++) { // 如何获取选择的位置,更重要的是如何获取递增索引的值 } - beck
int idx = 0; for (int i = 0; i < mData.size(); i++) { HashMap<String, String> m = mData.get(i); if ((m.get("video").equals(selection.get("video")))) { //为下一个增加 if (i < mData.size() - 1) { idx = i + 1; } else { idx = mData.size(); } //为上一个减少 if (i > 0) { idx = mData.size() - 1; } } } selection = mData.get(idx); - Diamond

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接