java - 如何将 Wikia 链接放入 Android 中的 ListView 中,也许 MediaWiki API 会有所帮助,但我不确定该去哪里

标签 java android listview mediawiki listactivity

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

    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 格式,我仍然很困惑如何将游戏标题输入到我的列表中。请帮助或指出我正确的方向。

最佳答案

最好的选择是使用 HTML Parser并解析出需要显示的内容。

这是 HTML Parser 的 Java 实现

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>

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

关于java - 如何将 Wikia 链接放入 Android 中的 ListView 中,也许 MediaWiki API 会有所帮助,但我不确定该去哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10023134/

相关文章:

java - 如何使用 fillPolygon 在 java swing 中绘制星星

Android布局,如何像css一样制作半径和边框

java - Listview RSS 阅读器崩溃

android - PopupWindow 中 ListView 的问题

java - 如何在 Java 中扫描文件夹?

java - 在 Java Swing 中启用 Transfersupport 的 stringFlavor

java - 我们怎样才能使列表可编辑?

android - 将文件夹从 Android 应用程序复制到本地 Windows 目录

android - 如何使用推送通知向 Android 发送大消息数据大小 (>10 KB)

android - 遍历 ListView 并获取 EditText-Field 值