Android中String的处理


1、在Android中显示的字符串,最好放到values/strings.xml文件中,这样的话,易于管理

2、在values/strings.xml中得到的字符串,可以格式化后显示到界面上

实例代码:

main.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="wrap_content">
        <Button android:id="@+id/format" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:text="@string/btn_name"></Button>
        <EditText android:id="@+id/name" android:layout_width="fill_parent"
            android:layout_height="wrap_content"></EditText>
    </LinearLayout>
    <TextView android:id="@+id/result" android:layout_width="fill_parent"
        android:layout_height="wrap_content"></TextView>

</LinearLayout>

values/strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">StringsDemo</string>
    <string name="btn_name">Name:</string>
    <string name="funky_format">My name is &lt;b&gt;%1$s&lt;/b&gt;</string>
</resources>

java代码

package yyl.strings;

import android.app.Activity;
import android.os.Bundle;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class StringsActivity extends Activity {

    // 定义变量
    private EditText name = null;
    private TextView result = null;
    private Button btnFormat = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // 根据Id得到控件对象www.bkjia.com
        name=(EditText)findViewById(R.id.name);
        result=(TextView)findViewById(R.id.result);
        btnFormat = (Button) findViewById(R.id.format);
        //给按钮添加单击事件监听器
        btnFormat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                applyFormat();
            }
        });
    }
   
    /*
     * 使用指定的格式字符串和参数返回一个格式化字符串
     */
    public void applyFormat()
    {
        //得到格式化字符串
        String format = getString(R.string.funky_format);
        //根据格式化字符串输出格式化以后的字符,格式化的字符串是My name is &lt;b&gt;%1$s&lt;/b&gt;
        String simpleResult = String.format(format, TextUtils.htmlEncode(name.getText().toString()));
        //显示到页面
        result.setText(Html.fromHtml(simpleResult));
    }

}

相关内容