2012-05-10 29 views
5

Android'le bir TextView'im var: autoLink = "web". Metin bazı URL’ler içeriyor. ÖrneğinAndroid - autolink bir URL'nin kök yolunu neden görmezden geliyor?

:
http://example.com/

Ama render zaman, adı şeması ve alan adını bağlayan ancak kök yolunu yok sayar.
http://example.com/

Neden bu işe yarar ve bunu düzgün tam URL'ler autoLink nasıl yapabilirim:

Örnek olarak vermektedir?

Düzenleme: Ayrıca, URL'ler bir fullstop veya virgül ardından:
http://example.com/,

olarak işlenen ediliyor : Stack Exchange Otomatik Bağlantıları doğru (Bu soru için kaynak bakmak) o
http://example.com/,

Not .

Düzenleme:

 <TextView android:id="@+id/open_source" 
      android:text="@string/open_source" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="#FFF" 
      android:paddingBottom="10dp" 
      android:autoLink="web" /> 

Bazı metin:

<string name="open_source">Three examples, fully qualified http://isokeys.sourceforge.net/ missing root path http://isokeys.sourceforge.net and followed with a fullstop http://isokeys.sourceforge.net/.</string> 

olarak işlemek olmalı: kök yolunu http://isokeys.sourceforge.net eksik tam http://isokeys.sourceforge.net/
Üç örnekler ve takip Sam, bu kodu http://isokeys.sourceforge.net/ fullstop.

olarak işlenen mı: Tam
Üç örnekler, nitelikli http://isokeys.sourceforge.net/eksik kök yolu http://isokeys.sourceforge.net ve fullstop takip http://isokeys.sourceforge.net/.

+0

Lütfen alakalı XML, dize ve başka bir şey gönderin. – Sam

+0

'http: // example.com /' ve 'http: // example.com' eşdeğer URL’lerdir. Aksi takdirde bunları kullanan herhangi bir Web sunucusu yanlış yapılandırılmış, IMHO. – CommonsWare

+0

CommonsWare: Biliyorum, ama ilk uygun. İşlendiğinde, uçtaki beyaz çizgi bir testere parmağı gibi göze çarpıyor. Doğru URL'leri doğru şekilde tanımanın bir yolu olmalı. Sağ? –

cevap

0

Sadece işaret olur iki şey:
1) eşit autoLink set " web ", arka planda Android, View nesnesinin metninde bulunan işlem yapılabilir öğeleri aramak için android.text.util paketindeki araçları kullanır. Varsayılan olarak, android.text.util.Linkify'nin neyin geçerli ve geçerli olmayan (regex eşlemesine bağlı) URL'ler hakkında kendi fikri vardır. URL'leri takip eden bir eğik çizgi ile kullanmak istediğinizde, siz veya virgül sonuna eklediyseniz, kendi MatchFilter'ınızı kendi normal ifadelerle uygulayabilirsiniz. Dokümantasyon, Android geliştiricileri sitesindebulunabilir
2) Standart bir URL'de bir izahat eğimi gerçekten bir anlam ifade etmemektedir, çünkü bu kaynak hiyerarşisindeki pozisyonu belirtmek için kullanılır, ancak eğik çizgiden sonra hiçbir şeyiniz yoksa o zaman hiyerarşinin başka bir seviyesine geçmiyorsunuz. Bir virgül veya periyotun eklenmesi geçerli bir URL sözdizimi olmamalıdır. Çünkü bu, hiyerarşiniz arasında bir kaynağa yardımcı olmaz, dolayısıyla Android'in normal ifadesi, bağlantıda hareket etmeye çalıştığında bir MalformedURLException almanızı engellemek için göz ardı eder.

İlgili konular