码迷,mamicode.com
首页 > 移动开发 > 详细

3.App Resources-Resource Types/String Resources

时间:2014-11-03 16:18:33      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   io   color   ar   os   for   sp   

1. String

//saved at res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello!</string> </resources>
//This layout XML applies a string to a View:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />

  This application code retrieves a string:

String string = getString(R.string.hello);

 

2. String Array

//saved at res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

  This application code retrieves a string array:

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

 

3. Formatting and Styling

  3.1 Escaping apostrophes and quotes

//good
<string name="good_example">"This‘ll work"</string>
<string name="good_example_2">This\ll also work</string>
//bad
<string name="bad_example">This doesnt work</string>
<string name="bad_example_2">XML encodings don&apos;t work</string>

  3.2 Formatting strings

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

  In this example, the format string has two arguments:

     %1$s is a string and %2$d is a decimal number.

    You can format the string with arguments from your application like this:

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

 

  3.3 Styling with HTML markup

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="welcome">Welcome to <b>Android</b>!</string>
</resources>

  <b> for Bold text

  <i>  for italic text

  <u> for underline text

  Sometimes you may want to create a styled text resource that is also used as a format string. Normally, this won‘t work

  <1>Store your styled text resource as an HTML-escaped string:

//In this formatted string, a <b> element is added. Notice that the opening bracket is HTML-escaped, using the &lt; notation.
<string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>

  <2>Then format the string as usual, but also call fromHtml(String) to convert the HTML text into styled text:

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);

  <3>Particularly. if you‘ll be passing a string argument to String.format() that may contain characters such as "<" or "&", then they must

    be escaped before formatting, so that when the formatted string is passed through fromHtml(String), the characters come out the way

    they were originally written. For example:

String escapedUsername = TextUtil.htmlEncode(username);

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), escapedUsername, mailCount);
CharSequence styledText = Html.fromHtml(text);

 

  

 

  

3.App Resources-Resource Types/String Resources

标签:android   style   blog   io   color   ar   os   for   sp   

原文地址:http://www.cnblogs.com/iMirror/p/4071351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!