2010-03-19 22 views
8

Basit html ile işaretlediğim dizeleri bir TextView içine nasıl görüntüleyeceğime ihtiyacım var. "From html (String source)" öğesini buldum, fakat java koduma nasıl takacağımı bilmiyorum.HTML Biçimlendirilmiş Dizeyi Görüntüle

İşte
package com.SorenWinslow.TriumphHistory; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

public class TriumphHistory extends ListActivity { 
    String[] HistoryList; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ArrayAdapter<String> adapter; 
     HistoryList = getResources().getStringArray(R.array.history); 
     adapter = new ArrayAdapter<String> (this,R.layout.historylistlayout,HistoryList); 
     setListAdapter(adapter); 

    } 
} 

tarihin bir örneğidir:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:textColor="#ffffff" 
    android:background="#000050" 
    android:layout_marginTop="5px" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:padding="3px" 
    android:textSize="8pt" android:layout_gravity="top|left"/> 

Ve burada benim ana geçerli:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="history"> 
<item><b>1883</b><br/>Some stuff happened</item> 
<item><b>1884</b><br/>Some more stuff happened <i>before</i> the other stuff 
</item> 
<resources> 

İşte benim historylistlayout.xml olduğunu

İşte benim Java olduğunu. xml

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:textColor="#ffffff" 
    android:background="#000080" 
    android:isScrollContainer="true" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" android:scrollbarStyle="insideOverlay"> 

    <ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:dividerHeight="1px"/> 

</LinearLayout> 

cevap

12

işlevi kullanın Bir yayılmış dönmek söz ve sonra biçimlendirilmiş metni elde etmek şöyle döndü yayılmış cismin toString kullanarak textview metnini ayarlayın: yourTextWithHTML herhangi nerede

Spanned marked_up = Html.fromHtml(yourTextWithHTML); 
((TextView) findViewById(R.id.text1)).setText(marked_up.toString()); 

Bu çalışacak Gönderdiğiniz öğe etiketlerindeki Dizeler. örn "<b>1883</b><br/>Some stuff happened"

+1

yılında elemanlar.Poisson kullanmak dönecektir. Dize dizileri HTML formatını kaldıracaktır. –

8
Spanned spannedContent = Html.fromHtml(htmlString); 
    textView.setText(spannedContent, BufferType.SPANNABLE); 
1

Bu (HTML in string resource? itibaren) aslında en kolay görünüyor:

Bu iç HTML sahip dizeleri çalışır
mTextView.setText(getText(R.string.my_styled_text)); 

.

13

aynı nitelikteki bir şeyler yapmaya çalışıyor ve ben dize aldı CSS ile birlikte benim html doğru biçimlendirilmiş almıyorum olduğunu öğrendim ve bunun gibi bir Web görünümündeki içine yüklendi:

WebView webview = (WebView) findViewById(R.id.MyWebview); 
String summary = "<html><body>You scored <b>192</b> points.</body></html>"; 
webview.loadData(summary, "text/html", "utf-8"); 

ve tüm stilleri tanıdı ve html'yi doğru biçimlendirdi. robot referans HERE

+1

çekicilik gibi çalıştı ... teşekkürler! +1 – Hiral

0

daha fazla aynı sorunla karşı karşıya ve

CharSequence[] HistoryList = getResources().getTextArray(R.array.history); 

kaynak ile ilişkili yukarıda kod döner tarz metin dizisi kullanarak bu çözüldü. Bu CharSequence []

Sonra sadece sen String dizisi şişirme ediyoruz değil ama eğer bir dize kaynak şişirme eğer bu işleri

setText(HistoryList[index]); 
İlgili konular