带有XML db

时间:2016-08-19 14:11:48

标签: java android xml listview android-intent

首先让我描述一下我的意图。我有一个带有一些民俗歌曲和歌词的XML DB。对于我的家人和朋友,我想开发一个Android应用程序,它将列出 AZ 顺序中的歌曲,点击/触摸歌曲标题后,将出现一个文本/歌词(这样我们都可以唱出同样的歌曲字)。

我对Java和Android开发不是很熟悉,但我设法创建了一个应用程序,在第一个Activity中有一个按钮“显示所有歌曲”,然后按下另一个Activity ListView列出了歌曲(使用XMLPullHandler解析器)。 Collections.sort()负责订购(虽然不是100%,因为以国家字符开头的项目被推到了最后)。请参见截图:

Screenshot of current functionality

但现在我不确定如何继续显示歌曲文本。我的想法:

  1. 要实现,点击一个项目后会出现一个新的SongActivity并显示歌词。但是我应该创建例如100个意图和活动,或者我可以只用一个吗?在后一种情况下 - 应用程序将如何知道哪个文本属于所点击的歌曲?
  2. 要将歌词文本与歌曲标题一起加载并在ListView中显示,但是使用属性invisible(在html中很明显,但在java中 - 我不确定。 ..)
  3. xml文件中歌曲的示例:

    <songs>
        <song>
            <id>1</id>
            <title>Zvalila sa skala</title>
            <lyrics>1.  [:Zvalila sa skala z vŕšku do Dunaja,:]
                [:prenes ma, má milá, prenes ma, má milá, veď je voda malá.:]
    
                2.  [:Ja bych ťa preniesla, hoc by bola väčšia,:]
                [:ale že som ti nie, ale že som ti nie, tvoja najmilejšia.:]
    
                3.  [:Keby ja vedela, kde môj milý býva,:]
                [:zaletela by som, zaletela by som, na jeho biely dom.:]
            </lyrics>
            <type>Valčík</type>
        </song> ...
    

    有人可以帮我指点一下吗?我将非常感激。

    On the picture is the actual status with visible values of variables

1 个答案:

答案 0 :(得分:0)

  

要实现,点击一个项目后,新的歌曲活动将会   出现并将显示歌词。但是我应该创建例如100   意图和活动,或者我可以只用一个吗?在后来   案例 - 应用程序将如何知道哪个文本属于所点击的歌曲?

不,你不必写100个意图或活动。你可以只使用一个更通用和方便的。

  

将歌曲歌词文本与歌曲标题一起加载并显示   在列表视图中,但有一个属性&#34;隐形&#34; (在HTML中是   明确,但在java - 我不确定...)

虽然你的问题不是很明确,但我猜你需要显示歌曲的标题以及一些文字作为辅助文字。您尝试使用.yaml属性让我感觉隐藏了辅助文本,一旦单击列表项,使辅助文本可见 - 是吗?

如果我找到你,你需要修改你invisible使用的适配器。您需要自定义适配器,并在绑定列表中的每个元素时,需要通过跟踪选择的项目来自行显示/隐藏辅助文本。

我建议您使用RecyclerView来显示列表中的歌曲列表。要使用自定义适配器实现RecyclerView,您可以通过互联网找到大量文档。在这里,我附上一个例子。

RecyclerView