1

我正在创建一个基于塞尔达传说的 Android 应用程序,我想链接到位于以下位置的塞尔达视频游戏的 Wikia 页面:http: //zelda.wikia.com/wiki/Category :Games ;我想知道是否有办法获取每个游戏的页面名称并将它们导入我的 Android 应用程序中的列表视图。我目前这样做的方式是将游戏名称直接编码到应用程序本身中,但如果我能这样做,它会为我提取名称,那么我就不必每次新游戏到来时都更新出来,这样就可以节省所有这些名字的硬编码。我到目前为止的代码如下:

    package com.lvlup.kikurself.zeldatest;

    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.AdapterView.OnItemClickListener;

    public class zeldaGames extends ListActivity {
        public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        String[] values = new String[] { "The Legend of Zelda", "Zelda II: The
         Adventure of Link", "The Legend of Zelda: Ocarina of Time",};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);
        final ListView zeldaList = getListView();

        zeldaList.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long thisID)
      {
         Object o = (zeldaList.getItemAtPosition(position));
         String gameName_temp = (o.toString());

         Intent newIntent = new Intent(v.getContext(), gameDisp.class);
         newIntent.putExtra("tempG", gameName_temp);
         startActivity(newIntent);

    }
    });

非常感谢任何帮助,感谢您花时间阅读本文。

我一直在查看 MediaWiki API 并发现了这一点:

 http://zelda.wikia.com/api.php?action=query&list=categorymembers&cmtitle=Category:Games&cmlimit=500

这将列出游戏,但它是 xml 格式我仍然对如何让游戏标题进入我的列表感到困惑。请帮助或指出我正确的方向。

4

1 回答 1

0

最好的办法是使用HTML Parser和解析您需要显示的内容。

这是Java实现HTML Parser

http://htmlparser.sourceforge.net/

另一个

http://jtidy.sourceforge.net/

您需要寻找对于每个游戏页面来说都是不变的<div class="category-gallery">特定内容。DIV

在那里面DIV,每个游戏都列在另一个里面DIV

<div class="category-gallery-item category-gallery-item-image">

其中包含名称、URL、图像等内容...

<a title="The Legend of Zelda: Skyward Sword" href="/wiki/The_Legend_of_Zelda:_Skyward_Sword">
<img alt="The Legend of Zelda: Skyward Sword" src="http://images3.wikia.nocookie.net/__cb51062/zelda/images/thumb/b/b9/Characters_%28Skyward_Sword%29.png/130px-77%2C1066%2C0%2C874-Characters_%28Skyward_Sword%29.png">
<span class="details">The Legend of Zelda: Skyward Sword</span>
</a>

从这里你可以解析你需要的东西。这也足够快,因此无需担心性能。

于 2012-04-07T05:20:24.263 回答