【问题标题】:How to remove html tag like <br> in android [duplicate]如何在android中删除像<br>这样的html标签[重复]
【发布时间】:2013-05-19 15:22:18
【问题描述】:

我在我的 android 应用程序中使用 json,实际上在列表视图中它也在我的文本中显示 html 标签,我怎样才能只显示避免 html 标签的文本

Mainactivity.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;
    }
}

在我的列表视图中显示如下

你好&lt;br&gt;

frnds'&lt;br&gt;'

gudmrng'&lt;br&gt;'

它用 html 标签显示,我只想要文本数据,文本必须显示在我的列表视图中。

【问题讨论】:

标签: java android json


【解决方案1】:

使用Html.fromHtml 在 TextView.Example 中显示带有 html 标记的文本

String str_without_html=Html.fromHtml("back to work&lt;br&gt;").toString();

【讨论】:

  • 你能解释清楚我必须添加哪些行吗?我必须在哪里添加行@prosper
  • @IBetterCommunity :查看我的编辑答案
  • @IBetterCommunity :在将文本设置为 TextView 或任何视图之前,您需要使用 Html.fromHtml(your_string_here_which_contains_html_tags).toString() 以删除所有 html 标签
  • @IBetterCommunity :好的,只需在 ApplicationAdapter 类中将 titleText.setText(app.getContent()); 行更改为 titleText.setText(Html.fromHtml(app.getContent()).toString());。这将在传递给 setText 方法之前从 String 中删除所有 HTML 标签
  • 您应该接受@ρяσѕρєяK 的回答,而不是自己给出答案...
【解决方案2】:

你可以使用

String s = value.replaceAll("<br>","");

【讨论】:

    【解决方案3】:

    解决方案通常需要正则表达式(这是一种容易出错的方法)或安装第三方库,例如 jsoup 或 jericho。 Android 设备上更好的解决方案就是使用 Html.fromHtml() 函数:

    代码

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

    这使用 Android 的内置 Html 解析器来构建输入 html 的 Spanned 表示,而无需任何 html 标记。然后通过将输出转换回字符串来剥离“Span”标记。

    【讨论】:

    【解决方案4】:

    只需删除 &lt;br&gt; 标签

    url =  url.replaceAll("<br>", "");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-11
      • 2010-12-14
      • 2016-11-27
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多