从Java读取XML字符串

Mxy*_*xyk 2 java xml android 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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的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>
Run Code Online (Sandbox Code Playgroud)

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

launchDialer("555-555-5555");
Run Code Online (Sandbox Code Playgroud)

但是,我需要它从XML文件中读取.有任何想法吗?

Mic*_*ael 8

也许我不懂东西,但getString(R.string.police1_phone)必须工作.

  • 因为您使用的是资源的ID(在R类中生成),而不是值本身. (2认同)