从Java读取XML字符串

时间:2011-08-17 12:43:32

标签: java android xml xml-parsing

我觉得这么简单,我很惊讶得到这么奇怪的错误......

在我的程序中,我有一个带有5个按钮的布局。当您按下按钮时,它会启动手机的拨号器,并在其中预先加载号码。我之前没有遇到任何问题,但之后我尝试将电话号码移动到XML文件中的字符串,我放在名为'phone.xml'的/ res / values文件夹中。这是我的Java文件代码的一部分:

    public void launchDialer(String number){
        String numberToDial = "tel:"+number;
        startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(numberToDial)));
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.police_button1:
            launchDialer(Integer.toString(R.string.police1_phone));
            break;
        case R.id.police_button2:
            launchDialer("" + R.string.police2_phone);
            break;
        case R.id.police_button3:
            launchDialer("" + R.string.police3_phone);
            break;
        case R.id.police_button4:
            launchDialer("" + R.string.police4_phone);
            break;
        case R.id.police_button5:
            launchDialer("" + R.string.police5_phone);
            break;
        }
    }

这是我的phone.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="police1_phone">"555-555-5555"</string>
    <string name="police2_phone">1-800-555-5555</string>
    <string name="police3_phone">555-555-5555</string>
    <string name="police4_phone">555-555-5555</string>
    <string name="police5_phone">555-555-5555</string>
</resources>

正如你在Java文件中看到的那样,我为police1_phone和police2_phone尝试了不同的东西,但它们都没有用。您还可以看到我尝试在xml文件中围绕其中一个电话号码添加引号,但它仍然无效。我的输出一直是一些随机的7位数字,甚至没有接近我想要打印的电话号码。这个Java代码起作用了:

launchDialer("555-555-5555");

但是,我需要它从XML文件中读取。有什么想法吗?

3 个答案:

答案 0 :(得分:8)

也许我不明白,但getString(R.string.police1_phone)必须有效。

答案 1 :(得分:0)

如果您希望他们准备好使用

之类的解析器

答案 2 :(得分:0)

如果您想使用R.string.xxx,则需要将字符串值放在strings.xml文件夹中名为/res/values/的文件中。