【问题标题】:Hyperlinks show in the wrong place超链接显示在错误的位置
【发布时间】:2016-09-16 00:49:53
【问题描述】:

在我的TextView 中,我有两个超链接,我想在项目符号后显示它们。但是,两个项目符号显示,但两个链接都显示在第二个项目符号之后,而我在第一个项目符号上编写了其中一个。

这是一张图片,我只想要第一个项目符号上的第一个或第二个链接。
Clik here to see it

我们将不胜感激,提前致谢!

这是我的strings.xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Rodekruis</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="title_activity_nieuws">NieuwsActivity</string>
    <string name="title_activity_afspraak"><b>Afspraak</b>&lt;br /&gt;&lt;br /&gt;<b>Maken en wijzigen</b>&lt;br /&gt;&lt;br /&gt;Zelf uw afspraak maken of wijzigen? Dat kan, mits us al als patiënt geregistreerd staat bij het RKZ. Is dit nog niet het geval? Dan wordt de afspraak telefonish gepland. Meer info&lt;br /&gt;&lt;br /&gt;<b>Bekijk ook</b>&lt;br /&gt;&lt;br /&gt;\u2022   <a href='https://www.rkz.nl/eerste_polikliniekbezoek'> &lt;br /&gt;&lt;br /&gt;</a>&lt;br /&gt;\u2022   <a href='https://www.rkz.nl/wachttijden'> </a></string>
    <string name="title_activity_bezoek"><b>Bezoektijden</b>\n\nVrijwel iedere patiënt vindt het prettig bezoek te ontvangen. Onze ervaring is
    dat een goed contact met vrienden en familie een bijdrage kan leveren aan 
    een spoedig herstel.\n\nVoor de meeste afdelingen gelden de volgende bezoektijden:\nvan 15.15 tot 16.15 uur;\nvan 19.00 tot 20.00 uur.\n\nLet op: tijdens feestdagen gelden in het RKZ andere bezoektijden dan normaal.
    Bekijk de website voor uitgebreide bezoektijden.</string>
    <string name="title_activity_contact">&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<b>Contact</b>&lt;br /&gt;&lt;br /&gt;Telefoon en internet Rode Kruis Ziekenhuis&lt;br /&gt;T 0251 26 5555 (algemeen nummer, ook Poli IJmuiden)&lt;br /&gt;www.rkz.nl<a href='https://www.rkz.nl'> </a>&lt;br /&gt;&lt;br /&gt;Huisartsenpost Midden-Kennemerland (begane grond RKZ)&lt;br /&gt;Voor huisartsenzorg buiten kantooruren&lt;br /&gt;T 0251 26 5265&lt;br /&gt;
    (A.u.b. bellen voordat u langskomt)&lt;br /&gt; Spoedeisende Hulp RKZ en Huisartsenpost: meer informatie&lt;br /&gt;Bij levensbedreigende klachten belt u altijd 112&lt;br /&gt;&lt;br /&gt;Bezoek- en postadres Rode Kruis Ziekenhuis&lt;br /&gt;Vondellaan 13&lt;br /&gt;1942 LE Beverwijk&lt;br /&gt;Route(link)&lt;br /&gt;Postbus 1074&lt;br /&gt;1940 EB Beverwijk</string>
    <string name="title_activity_mening">MeningActivity</string>
    <string name="title_activity_route">\n\n\n\n<b>Route</b>\n\nRode Kruis Ziekenhuis, hoofdgebouw\nVondellaan 13\n1942 LE Beverwijk\n\nDe Velsertunnel is van medio mei tot eind 2016 gesloten.\nVoor verkeer vanuit zuidelijke richting is het Rode Kruis Ziekenhuis in Beverwijk hierdoor moeilijker bereikbaar. Bekijk: \n\n\u2022    actuele verkeersinformatie korte routes naar/van het RKZ\n\u2022    actuele verkeersinformatie langere routers naar/van het RKZ\n\u2022    plan uw route naar/van het RKZ met      actuele verkeersinformatie\n\nRKZ Poli IJmuiden (tijdelijk i.v.m. sluiting Velsertunnel)\nGezondheidscentrum Het Plein\nPlein 1945, nr.1\nIJmuiden\n\u2022    Plan uw route(Google maps)\n\u2022    Meer informatie over de Poli IJmuiden</string>
    <string name="title_activity_specialisten">SpecialistenActivity</string>
    <string name="title_activity_bwc">  &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;<b>Brandwondencentrum</b>&lt;br /&gt;&lt;br /&gt;Het RKZ Brandwondencentrum, beter bekend als: Brandwondencentrum Beverwijk, levert al meer dan veertig jaar topklinische zorg op het gebied van huid-, brandwonden- en littekenbehandelingen en wordt zowel in het binnen- als buitenland hoog gewaardeerd.&lt;br /&gt;&lt;br /&gt;Wie werken er in het Brandwondencentrum? Wat maakt het centrum zo bijzonder? Wat is een brandwond precies, wanneer is behandeling in het Brandwondencentrum Beverwijk nodig? Welke behandelingen vinden er plaats? Hoe vindt een opname plaats en wat zijn de bezoekregels? En welke afdelingen en poliklinieken behoren tot het brandwondencentrum?&lt;br /&gt;&lt;br /&gt;Op de website van Brandwondencentrum worden deze vragen uitegebreid beantwoord.&lt;br /&gt;&lt;br /&gt;Brandwondencentrum Beverwijk heeft speciaal voor kinderen en tieners een <a href='https://www.rkz.nl/het_kinderbrandwondencentrum'> </a></string>
    <string name="title_activity_agenda">AgendaActivity</string>
    <string name="title_activity_informatie"><b>Welkom op de RKZ app!</b>\n\nU heeft de app gedownload van het Rode Kruis Ziekenhuis in Beverwijk. Met onze app geven wij u beknopte, praktische informatie over ons ziekenhuis die u deels offline (zonder internet) kunt raadplegen.\n\nVoor vervolginformatie verwijzen wij u via links naar onze website. Hiervoor heeft u internet nodig.\n\nBent u in het Rode Kruis Ziekenhuis, dan kunt u gebruik maken van gratis Wifi (draadloos internet). Hoe werkt het?\n\n\u2022   Ga naar de WiFi-instellingen op uw mobiele apparaat.\n\u2022   Maak verbinding met het netwerk <b>RKZ_Bezoekers.</b>\n\u2022    Open uw internetbrowser (zoals Internet, Explorer, Firefox of Safari)\n\u2022   U komt automatisch op de portal van het RKZ. Wilt u gebruik maken van Wifi in het RKZ, dan klikt u hier op <u>akkoord</u> om de voorwaarden te accepteren.\n\u2022   De browser verwijst u door naar de pagina http://www.rkz.nl.</string>
    <string name="title_activity_vriend">\n\n\n\n<b>Word vriend van het RKZ</b>\n\nEen verblijf in het ziekenhuis is meestal niet erg plezierig. De Stichting Vrienden van het Rode Kruis Ziekenhuis spant zich in om het verblijf van patiënten, bezoekers en medewerkers van het Rode Kruis Ziekenhuis en het bijbehorende Brandwondencentrum Beverwijk te veraangenamen. Door geld in te zamelen voor voorzieningen die niet uit het basisbudget van het ziekenhuis kunnen worden betaald. Denk aan een opknapbeurt voor de speelkamer voor jonge patiënten of een verwenbehandeling bij een chemokuur.\n\nOok u kunt helpen. Door Vriend te worden van het RKZ of door ons eenmalig te steunen. Lees verder op de website.\n\nMet vrienden om je heen voel je je beter. Geef om het Rode Kruis Ziekenhuis.</string>
    <string name="title_activity_folders">FoldersActivity</string>

</resources>

这是我的主要活动代码:

package com.example.rodekruis;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.Html;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;

public class AfspraakActivity extends Activity {


    TextView HyperLink;
    Spanned Text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_afspraak);

        TextView textView =(TextView)findViewById(R.id.textView);
        textView.setClickable(true);
        textView.setMovementMethod(LinkMovementMethod.getInstance());
        String text = getResources().getString(R.string.title_activity_afspraak);
        text += "<a href='https://www.rkz.nl/eerste_polikliniekbezoek'> Wat neem ik mee naar een eerste afspraak?</a>\n\n";
        text += "<a href='https://www.rkz.nl/wachttijden'> Wat zijn de wachttijden?</a>";
        textView.setText(Html.fromHtml(text));


    }

}

编辑:1

这是我的 activity_xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.rodekruis.Afspraak" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:src="@drawable/rkz_logo"
        android:layout_gravity="left" 
        android:layout_marginLeft="1dp"/>

    <ImageView
        android:id="@+id/imageButton1"
        android:layout_width="40dp"
        android:layout_height="50dp"
        android:layout_marginBottom="20dp"
        android:layout_marginRight="40dp"
        android:layout_marginTop="10dp"
        android:layout_gravity="right" 
        android:src="@drawable/btn_informatie" />
 </FrameLayout>


    <TextView
        android:id="@+id/textView"
        android:layout_width="244dp"
        android:layout_height="280dp"
        android:layout_gravity="center"
        android:layout_marginTop="30dp"
        android:text="@string/title_activity_afspraak"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/black" />

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

     <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="15dp"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <Button
            android:id="@+id/button11"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Facebook" />

        <Button
            android:id="@+id/button12"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="Youtube" />

        <Button
            android:id="@+id/button13"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="Twitter" />

        <Button
            android:id="@+id/button14"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_alignLeft="@+id/button5"
            android:layout_below="@+id/button8"
            android:layout_marginLeft="5dp"
            android:layout_weight="1"
            android:text="LinkedIn" />

    </LinearLayout>
</LinearLayout>

【问题讨论】:

  • 分享你的activity_afspraak.xml
  • 我已经添加了。见编辑

标签: android eclipse layout


【解决方案1】:

编辑 1:

使用&lt;br/&gt; 代替\n

text += "<a href='https://www.rkz.nl/eerste_polikliniekbezoek'> Wat neem ik mee naar een eerste afspraak?</a><br/><br/>";

// I have added \u2022 here for second Bullet.

text += " \u2022 <a href='https://www.rkz.nl/wachttijden'> Wat zijn de wachttijden?</a>";

像这样修改你的字符串:

<string name="title_activity_afspraak"><b>Afspraak</b>&lt;br /&gt;&lt;br /&gt;<b>Maken en wijzigen</b>&lt;br /&gt;&lt;br /&gt;Zelf uw afspraak maken of wijzigen? Dat kan, mits us al als patiënt geregistreerd staat bij het RKZ. Is dit nog niet het geval? Dan wordt de afspraak telefonish gepland. Meer info&lt;br /&gt;&lt;br /&gt;<b>Bekijk ook</b>&lt;br /&gt;&lt;br /&gt;\u2022 </string> 

// At last there is a \u2022 for First Bullet

因为在string.xml中添加&lt;a&gt;是没有意义的。

希望这会有所帮助..!!

【讨论】:

  • 现在发生的事情是第一个链接显示在第二个项目符号旁边。第二个赞不再可见。您知道如何将第一个链接放在第一个项目符号上,将第二个链接放在第二个项目符号上吗?感谢您的努力。
  • 如果你的答案最终有效,我会接受你的。
  • 子弹到底是什么??我的意思是他们是怎么来的?我在你的布局中看不到它们..!!
  • \u2022 in strings.xml 使项目符号出现。我把它们放在我的链接前面
  • 我的荣幸.. 支持答案将是一个忙 :)
【解决方案2】:

当您使用 HTML 时,请使用 &lt;br&gt; 而不是 \n

因为 \n 在 HTML 中不起作用

使用

text += "<a href='https://www.rkz.nl/eerste_polikliniekbezoek'> Wat neem ik mee naar een eerste afspraak?</a><br/><br/>";
text += "<a href='https://www.rkz.nl/wachttijden'> Wat zijn de wachttijden?</a>";

如果你真的想使用\n,你应该使用content-type: text/plain,但是你会丢失任何标记。

 <TextView
        android:id="@+id/textView"
        android:layout_width="244dp"
        android:layout_height="wrap_content"   // set this to wrap_content
        android:layout_gravity="center"
        android:layout_marginTop="30dp"
        android:text="@string/title_activity_afspraak"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/black" />

【讨论】:

  • 多么好的答案.. 只需复制粘贴并更改一些英文..!!
  • 现在发生的事情是第一个链接显示在第二个项目符号旁边。第二个赞不再可见。您知道如何将第一个链接放在第一个项目符号上,将第二个链接放在第二个项目符号上吗?感谢您的努力。
  • 这使得第二个链接出现在屏幕底部。该链接现在刚刚打开,第一个链接仍在第一个项目符号后面。他们都需要向上一个地方,第一个子弹现在什么都没有显示。
  • 使用一个
    而不是两个
  • 你能不能把它现在的样子贴出来。还要通过在纸上绘制来发布您想要出现此布局的图像
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 2011-09-30
  • 1970-01-01
相关资源
最近更新 更多