2015-09-06 157 views
0

我創造了2個XML文件的XML文件:獲得一個隨機的項目從

RES/XML/comedy.xml

<comedy> 
<item title="Grown Ups" length="90min"/> 
<item title="Grown Ups 2" length="90min"/> 
<item title="Scary Movie" length="90min"/> 
<item title="Superbad" length="90min"/> 
<item title="Zoolander" length="90min"/> 
<item title="Groundhog Day" length="90min"/> 
<item title="Beverly Hills Cop" length="90min"/> 
<item title="Beverly Hills Cop II" length="90min"/> 
<item title="Hangover" length="90min"/> 
<item title="Anchorman" length="90min"/> 
<item title="Pineapple Express" length="90min"/> 
<item title="Happy Gilmore" length="90min"/> 
<item title="We're the Millers" length="90min"/> 
<item title="Horrible Bosses" length="90min"/> 
<item title="Horrible Bosses 2" length="90min"/> 
<item title="Meet the Parents" length="90min"/> 

RES/XML/action.xml

<action> 
<item title="Man in Black" length="90min"/> 
<item title="Man in Black II" length="90min"/> 
<item title="Man in Black III" length="90min"/> 
<item title="Mission: Impossible" length="90min"/> 
<item title="Mission: Impossible II" length="90min"/> 
<item title="Mission: Impossible - The Phantom Pain" length="90min"/> 
<item title="Terminator" length="90min"/> 
<item title="Die Hard" length="90min"/> 
<item title="Back to the Future" length="90min"/> 
<item title="The Bourne Identity" length="90min"/> 
<item title="Marvel's The Avengers" length="90min"/> 
<item title="Jurassic Park" length="90min"/> 
<item title="Jurassic World" length="90min"/> 
<item title="The Dark Night" length="90min"/> 
<item title="The Matrix" length="90min"/> 
<item title="Kill Bill - Volume 2" length="90min"/> 
<item title="Apocalypto" length="90min"/> 
<item title="Apocalypse Now" length="90min"/> 
<item title="Aliens" length="90min"/> 

現在我想從這些文件中抽出一部隨機電影。

有沒有辦法直接做到這一點?或者我必須用XmlPullParser(如here)拉出所有項目,然後使用隨機生成器?

旁註

1:我不能完全肯定,如果我做了那些xml文件的方式是理想的。我只是將自己定位於鏈接中的示例。如果你有更好的想法,請告訴我。

2:最終目標是在用戶選擇一個或多個流派之後在應用中顯示隨機電影。

+0

您將需要加載xml文件作爲某種數組,並且只是從中得到一個隨機索引 –

+0

感謝Daniel。 這是我的計劃B. 但後來在製作應用程序的過程中,我想抽出隨機電影,不僅按流派過濾,還要按照長度過濾。 當我使用數組,像[這裏](http://stackoverflow.com/questions/11600001/how-to-get-a-random-value-from-a-string-array-in-android)我可以不這樣做。或者我可以嗎? – Johannes

+0

如果我是你,我會使用JSON。想看到嗎? – theapache64

回答

0

你可以使用sqlite DataBse,所以你可以做任何事情。例如保存名稱和類型,然後查詢某事像這樣: SELECT * FROM movieWHERE movie.genre =「戲劇」 ORDERBY RANDOM()

+0

我知道如何創建一個帶有數據的sqlite數據庫的唯一方法,就是已經給出(如這裏,電影列表) xml文件。 – Johannes

+0

本教程可以用於sqlite數據庫:(http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/) – Dara

0

我通過與字符串數組的XML文件選擇了另潰敗:

<resources> 
    <string-array name="comedy"> 
    <item>Grown Ups</item> 
    <item>Grown Ups 2</item> 
    <item>Scary Movie</item> 
    <item>Superbad</item> 
    <item>Zoolander</item> 
    <item>Groundhog Day</item> 
    <item>Beverly Hills Cop</item> 
    <item>Beverly Hills Cop II</item> 
    <item>Hangover</item> 
    <item>Anchorman</item> 
    <item>Pineapple Express</item> 
    <item>Happy Gilmore</item> 
    <item>We are the Millers</item> 
    <item>Horrible Bosses</item> 
    <item>Horrible Bosses 2</item> 
    <item>Meet the Parents</item> 
    </string-array> 

    <string-array name="action"> 
    <item>Man in Black</item> 
    <item>Man in Black II</item> 
    <item>Man in Black III</item> 
    <item>Terminator</item> 
    <item>Die Hard</item> 
    <item>Back to the Future</item> 
    <item>The Bourne Identity</item> 
    <item>The Avengers</item> 
    <item>Jurassic Park</item> 
    <item>Jurassic World</item> 
    <item>The Dark Night</item> 
    <item>The Matrix</item> 
    <item>Mission: Impossible</item> 
    <item>Mission: Impossible II</item> 
    <item>Mission: Impossible - The Phantom Pain</item> 
    <item>Kill Bill - Volume 2</item> 
    <item>Apocalypto</item> 
    <item>Aliens</item> 
    <item>Apocalypse Now</item> 
    <item>Logans Run</item> 
</string-array> 
</resources> 

現在我可以很容易地獲得一個數組,然後使用隨機生成器。

到目前爲止,這已經足夠了。

但是後來在製作應用程序的過程中,我不得不按照流派過濾,也要根據篇幅進行過濾。 這就是爲什麼我試圖使用第一個潰敗,如我最初的問題所示。 這將是偉大的,如果任何人有一個建議,使這項工作!

相關問題