我正在创建一个基于《塞尔达传说》的 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/
另一个
您需要寻找<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/