从另一个Activity(ANDROID)putExtra getStringExtra接收数据时丢失HTML标记<b> </b>

时间:2017-06-05 15:28:55

标签: android html xml android-activity tags

您好我在两个活动之间共享strings.xml中的一些字符串。在第一个我有代码:

 public void onClick(View v)
    {
        Intent intent;
        switch (v.getId())
        {
            case R.id.shops_id:
                intent = new Intent(this, TitleContent.class);
                intent.putExtra("content", getString(R.string.shop_content));
                startActivity(intent);
                break; 
        }
    }

在第二个中,我收到的数据如下:

        Intent intent = getIntent();
        String content1 = intent.getStringExtra("content");
TextView content  =  (TextView)findViewById(R.id.contentID); 

        if(content1!=null){

            content.setText(content1);
        }

XML看起来像:

<resources>

    <string name="shop_content"><b>bold content</b></string>

</resources>

问题是在共享数据期间,html标签丢失了。我尝试使用getText而不是getString,但它不起作用。在接收活动时,我尝试使用.setText(Html.fromHtml(somestring));,但它不起作用。

1 个答案:

答案 0 :(得分:0)

  

问题是在共享数据期间html标签丢失了

在字符串资源中读取时,如果您有基本的HTML标记,那么这些标记将被解释并应用于结果。但是,只有在您使用getResources().getText(R.string.shop_content)而不是getString()时,以及使用getCharSequenceExtra()代替getStringExtra()时才有效。

或者,将R.string.shop_content作为int额外传递,因此第二项活动可以使用setText(getIntent().getIntExtra("content"))

(顺便说一下,最好将额外的键定义为常量,例如static final String EXTRA_CONTENT="content",这样两个活动都使用相同的键)