【问题标题】:How to make link "a href=" in TextView clickable without using .setText(Html.FromHtml)如何在不使用 .setText(Html.FromHtml) 的情况下使 TextView 中的链接“a href=" 可点击
【发布时间】:2013-02-24 12:55:34
【问题描述】:

我正在做 rss 阅读器,我需要你的帮助。我正在解析一个 xml 文件并获取标签的下一个内容

<p>
    <img class="alignright size-full wp-image-115203" alt="10 мероприятий, которые можно посетить в марте" src="http://ain.ua/wp-content/uploads/2013/03/secr2011-nov1-300x200.jpg" width="300" height="200" title="10 мероприятий, которые можно посетить в марте"
    />Предлагаем вашему вниманию небольшой список ИТ мероприятий марта, которые пройдут в Украине. В нашем
    <a href="http://ain.ua/events">календаре мероприятий</a>, вы можете найти еще больше мероприятий, которые мы рекомендуем вам к посещению.</p>
<ol>
    <li>
        <a href="http://ain.ua/event/seminar-kpi-motivaciya-sistema-oplaty-po-rezultatu">Семинар “KPI-Мотивация. Система оплаты по результату”</a>
    </li>
    <li>
        <a href="http://ain.ua/2013/03/04/114970">Бесплатный семинар об организации системы внутренних коммуникаций и мотивации сотрудников</a>
    </li>
    <li>
        <a href="http://ain.ua/event/targetirovaniya-reklamnyx-kampanij-po-celevym-auditoriyam">Круглый стол «Возможности таргетирования рекламных кампаний по целевым аудиториям»</a>
    </li>
    <li>
        <a href="http://ain.ua/event/kak-zastavit-sajt-prodavat-bolshe">Бесплатный вебинар «Как заставить сайт продавать больше?»</a>
    </li>
    <li>
        <a href="http://ain.ua/event/6-j-seminar-effektivnyj-internet-marketing-dlya-biznesa">6-й семинар «Эффективный интернет-маркетинг для бизнеса»</a>
    </li>
    <li>
        <a href="http://ain.ua/event/internet-marketing-2013">Всеукраинский Форум «Дни Интернет-маркетинга» 2013</a>
    </li>

我需要所有这些链接都可以点击并且名称为 beetwen name_of_link

我有下一个代码,用于解析所需的 xml 文件

        ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();

    String xml = XMLfunctions.getXML(resourceURL);
    Document doc = XMLfunctions.XMLfromString(xml);
    NodeList nodes = doc.getElementsByTagName("item");

    for (int i = 0; i < nodes.getLength(); i++) {                           
        HashMap<String, String> map = new HashMap<String, String>();    
        Element e = (Element)nodes.item(i);
        map.put(KEY_TITLE, XMLfunctions.getValue(e, KEY_TITLE));
        map.put(KEY_DATE_TIME, "Date: "+XMLfunctions.formatDate(XMLfunctions.getValue(e, KEY_DATE_TIME)));



        map.put(KEY_DESC, Html.fromHtml(XMLfunctions.getValue(e, KEY_DESC),null,null).toString());
        map.put(KEY_LINK, Html.fromHtml(XMLfunctions.getValue(e, KEY_LINK)).toString());
        mylist.add(map);            
    }       


    ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.main, 
                    new String[] { "title","pubDate", "description","link" }, 
                    new int[] { R.id.item_title, R.id.item_pubdate, R.id.item_subtitle, R.id.item_link });

    setListAdapter(adapter);

我的问题是:如何解析和转换输出中的数据,我会得到带有可点击链接的普通文本,就像在这个来源http://feeds.feedburner.com/ainua?format=xml

如果这篇文章已经存在,我很抱歉浪费您的时间,但不幸的是,我不知道如何找到它。感谢您提供任何帮助,因为我花了很多时间尝试解决此任务,但我不需要寻找的地方。谢谢。

【问题讨论】:

  • 在布局 xml 中的 TextView 上尝试 android:autoLink="all"
  • 这是我做的第一件事,没有任何利润

标签: java android html xml xml-parsing


【解决方案1】:

我会尝试为 ListView 实现我自己的 Adapter-Class 并修改为适配器对应方法中的每一行创建的视图。

【讨论】:

  • 我理解你的想法,但是......你能给我一些例子的链接吗,因为我不知道我需要如何修改我的观点。非常感谢您的想法。
  • 我找到了如何将“一些文本 google 之类的链接放入 ListActivity(我已经在我自己的 MyArrayAdapter 类中覆盖了 getView() 方法)扩展了 ArrayAdapter) 并且....它向我展示了我需要的链接!...但是还有另一个问题。这些链接不可点击)) ...(((..你能告诉我需要在哪里寻找,使该链接可点击?ListActivity容器中的内容(例如,“一些文本,google.com”)不可点击。如何解决?
【解决方案2】:

如果您不想使用HTML.fromHTML(),则需要自己解析 HTML,虽然您可以使用 RegEx 轻松获取 href 链接,但您仍然需要处理图像标签、列表等,因此 RegEx 是不是真正的答案。这个问题应该有帮助:Parse HTML in Android

如果您决定尝试使用 RegEx 解析 HTML,请阅读:RegEx match open tags except XHTML self-co҉ntained tags。它解释了为什么 RegEx 不能这样做。

【讨论】:

  • 感谢另一个想法如何解析 html,我真的很感激,我会使用它。但我的主要问题是如何在我自己的 ListActivity 类中显示很多类似 google.com">google</a> 的链接,然后使其可点击。谢谢您的时间。
猜你喜欢
  • 2012-10-06
  • 2023-03-30
  • 1970-01-01
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多