我是 Java / Android 的新手,所以请耐心等待。提前感谢您的宝贵时间。我正在编写一个简单的 android 应用程序,它将扫描网页源中的 a=href 链接并返回它们
我已经用谷歌搜索了大约 2 天,但找不到任何明确的答案,因此我向 SO 提出了问题。目前,我正在使用 Eclipse 在使用 Ctrl-Shift-O 时生成的以下导入
import javax.swing.text.EditorKit;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.html.HTML;
import javax.swing.text.html.HTMLEditorKit;
问题是,当我运行我的 android 应用程序时,它在使用这些库的代码上崩溃(下面的代码)。
我需要找到一种不使用 javax.swing 导入的方法。我设法弄清楚 android.text.html 有一些功能,但不是我需要的。
是否有任何 Android 导入可用于执行以下操作,或者有没有办法使 javax.swing.text.* 导入与 android 一起使用?
代码在这里:
try {
URLConnection conn = params[0].openConnection();
Log.i(DEBUG_TAG, "Code fails here for the new declarations");
BufferedReader rd = new BufferedReader( new InputStreamReader(conn.getInputStream()));
EditorKit kit = new HTMLEditorKit();
HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
kit.read(rd, doc, 0);
HTMLDocument.Iterator it = doc.getIterator(HTML.Tag.A);
while (it.isValid()) {
SimpleAttributeSet s = (SimpleAttributeSet) it.getAttributes();
String link = (String) s.getAttribute(HTML.Attribute.HREF);
if (link != null) {
if (link.contains("naruto") && !link.contains("http://mangastream.com")){
// find the chapter number / id and print to console
String chapterNumber = link.replace("http://readms.com/r/naruto/", "");
// System.out.println("Chapter = " + chapterNumber.substring(0,3));
// System.out.println("ChapterID = " + chapterNumber.substring(4,8));
if (!registeredChapters.containsKey(chapterNumber.substring(0,3))){
registeredChapters.put(chapterNumber.substring(0,3),chapterNumber.substring(4,8));
}
}
}
it.next();
}
//appendToFile("Done with URL processing");
Log.i(DEBUG_TAG, "Current chapters / id's found: ");
}
catch (IOException ioe){
ioe.printStackTrace();
}
catch (Exception e){
Log.i(DEBUG_TAG, e.getLocalizedMessage());
}
catch (Throwable t){
Log.i(DEBUG_TAG,t.getClass().getName());
}