1

Androidアプリケーションでjsonを使用していますが、実際にはリストビューでテキストにhtmlタグが表示されていますが、htmlタグを避けてテキストのみを表示するにはどうすればよいですか

メインアクティビティ.java

public class MainActivity extends ListActivity implements FetchDataListener
{
    private ProgressDialog dialog;


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_list_item);   
        initView();
    }



    private void initView()
    {
        // show progress dialog
        dialog = ProgressDialog.show(this, "", "Loading...");
        String url = "http://floating-wildwood-1154.herokuapp.com/posts.json";
        FetchDataTask task = new FetchDataTask(this);
        task.execute(url);
    }

    @Override
    public void onFetchComplete(List<Application> data)
    {
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // create new adapter
        ApplicationAdapter adapter = new ApplicationAdapter(this, data);
        // set the adapter to list
        setListAdapter(adapter);
    }

    @Override
    public void onFetchFailure(String msg)
    {
        // dismiss the progress dialog
        if ( dialog != null )
            dialog.dismiss();
        // show failure message
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
    }
}

Applicationadapter.java

public class ApplicationAdapter extends ArrayAdapter<Application>
{
    private List<Application> items;

    public ApplicationAdapter(Context context, List<Application> items)
    {
        super(context, R.layout.app_custom_list, items);
        this.items = items;
    }

    @Override
    public int getCount()
    {
        return items.size();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View v = convertView;
        if ( v == null )
        {
            LayoutInflater li = LayoutInflater.from(getContext());
            v = li.inflate(R.layout.app_custom_list, null);
        }
        Application app = items.get(position);
        if ( app != null )
        {
            TextView titleText = (TextView) v.findViewById(R.id.titleTxt);
            if ( titleText != null )
                titleText.setText(app.getContent());
        }
        return v;
    }
}

私のリストビューでは、このように表示されます

こんにちは<br>

frnds '<br>'

ガドムルン'<br>'

htmlタグで表示します。テキストデータのみが必要です。テキストはリストビューに表示する必要があります。

4

4 に答える 4

11

TextView.Example で html タグ付きのテキストを表示するには、 Html.fromHtmlを使用します。

String str_without_html=Html.fromHtml("back to work<br>").toString();

于 2013-05-24T05:04:02.273 に答える
1

<br>タグを外すだけ

url =  url.replaceAll("<br>", "");
于 2013-05-24T05:05:52.520 に答える
1

あなたが使用することができます

String s = value.replaceAll("<br>","");
于 2013-05-24T05:06:07.313 に答える
1

通常、ソリューションには正規表現 (エラーが発生しやすいアプローチ) を使用するか、jsoup や jericho などのサードパーティ ライブラリをインストールする必要があります。Android デバイスでのより良い解決策は、Html.fromHtml() 関数を利用することです。

コード

public String stripHtml(String html) {
    return Html.fromHtml(html).toString();
}

これは、Android の組み込み Html パーサーを使用して、html タグなしで入力 html の Spanned 表現を構築します。「Span」マークアップは、出力を文字列に変換することによって取り除かれます。

于 2013-05-24T05:08:51.107 に答える