2012-03-13 11 views
6

申し訳ありませんが、これは他の人には明らかですが、私のリストビュー内にhtmlを表示する方法を理解するのは些細な困難です。Androidをリストビューに表示する

私のリストビューが宣言されています。

ListView lv1 = (ListView) findViewById(R.id.ListView01); 

ここには表示されていませんが、ここではArrayAdapterを使用してリストビューを設定します。

lv1.setAdapter(new ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, foods)); 

はさらにダウン私は、私は大胆なタグを持つようにしたい文字列の新しい配列を作成します。私は、その後onTextChanged()メソッドinsdie arrayadapterに(arr_sortと呼ばれる)は、この新しい配列を追加します。

lv1.setAdapter(new ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, arr_sort)); 

これで、新しい文字列の配列に< b>タグが追加されました。リストビューに太字のテキストを表示させるにはどうすればよいですか?ここで

は私のnew_list_view

<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:textColor="@color/grey2" 
    android:textSize="20sp" 
    android:gravity="center_vertical" 
    android:paddingLeft="6dip" 
    android:minHeight="40dip" 
/> 

そして、ここでは私のメインのレイアウトの私のListViewの一部です。

 <ListView 
     android:id="@+id/ListView01" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/rounded_corners_green" 
     android:cacheColorHint="#00000000" 
     android:divider="@color/green6" 
     android:dividerHeight="1px" 
     android:fastScrollEnabled="true" > 
    </ListView> 

ご協力いただければ幸いです。

答えて

3

オーバーライドのgetItemメソッドを使用してテキストを設定し、次の操作を実行するために:

ArrayAdapter<String> adapter= ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, arr_sort){ 
    public Object getItem(int position) 
    { 
      return Html.fromHtml(arr_sort.get(position)); 
    } 
}; 
+0

これが受け入れ答えは混乱しているという事実から、HTMLデータのためのksoapを使用している場合。 OPの答え、S.A.Jayが私のために働いた。 –

+0

私のために働かない。 – EliaszKubala

1

strings.xmlからテキストを読み込む可能性がある場合は、タグを追加するとテキストが自動的に太字になります。 しかし、あなたの文章が動的である場合、あなたはcustom adapterを作成する必要があります、そしてそれにアダプタのtextView.setText(Html.fromHtml(yourText));

2

すべてのあなたの場合欲しかったあなたが必要とするすべては1つのTextViewで、テキストの一部を太字にする必要がありますいくつかのテキストを表示し、(追加<B>で)適切にフォーマットされたテキストと次の操作を実行することです:

textview.setText(Html.fromHtml(text)); 

TextView + Htmlがサポートできるものの詳細については、here

15

を参照してください。Jitendra Sharmaは私のシナリオでは適切なアイデアを持っていましたが、getViewメソッドをオーバーライドする必要がありました。それとも少なくとも私のために働いたものです。その後、getViewメソッドで、私はhtmlでレンダリングするようにテキストを設定することができました。

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, arr_sort) 
      { 
       @Override 
       public View getView(int position, View convertView, ViewGroup parent) 
       { 
        View row; 

        if (null == convertView) { 
        row = mInflater.inflate(R.layout.new_list_view, null); 
        } else { 
        row = convertView; 
        } 

        TextView tv = (TextView) row.findViewById(android.R.id.text1); 
        tv.setText(Html.fromHtml(getItem(position))); 
        //tv.setText(getItem(position)); 

        return row; 
       } 

      }; 
      lv1.setAdapter(adapter); 
+0

それは正しいことのようですが、アンドロイドは "mInflater"、私は何をすべきかの任意のアイデアを見つけることができません? – Fundhor

+0

LayoutInflater mInflater =(LayoutInflater)Activity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);これは私がこの作業をするために追加したものです。活動名をあなたの活動名に変更してください。 – Gavin

0
ArrayAdapter<Spanned> listAdapter = new ArrayAdapter<Spanned>(MyActivity.this, R.layout.row); 
listAdapter.add(Html.fromHtml(htmlText)); 
listAdapter.add(Html.fromHtml(htmlText)); 
... 
-1

また、これは動作しているずっと簡単perphaps。まず、[] []

Spanned[] myhtmldata = new Spanned[mydata.length]; 
for(int i = 0 ; i < mydata.length; i++) { 
myhtmldata[i] = Html.fromHtml(mydata[i]); 
} 

をスパンするためにその後のCharSequenceパラメータにあなたがここに、SimpleAdapterを使用している場合はhere

2

から借り

ArrayAdapter<CharSequence> linksadapter = new ArrayAdapter<CharSequence>(getActivity(), R.layout.list_item, R.id.textview, myhtmldata);   
setListAdapter(linksadapter); 

を使用してArrayAdapterを宣言文字列からデータを渡しますTextViewでHTMLを有効にするコードです。

adapter.setViewBinder(new SimpleAdapter.ViewBinder() { 
    public boolean setViewValue(View view, Object data, String textRepresentation) { 
     if (data instanceof Spanned && view instanceof TextView) { 
      ((TextView) view).setText((Spanned) data); 
     } else { 
      ((TextView) view).setText(Html.fromHtml(String.valueOf(data))); 
     } 
     return true; 
     } 
    } 
); 

参考:[リンク](http://android.jreactor.com/2012/07/17/simpleadapter-spanned-html-fromhtml/

0

あなたが任意のデータベースエンジン

yourVariable=String.valueOf(Html.fromHtml(ic.getProperty(0).toString())) 
関連する問題