我觉得这么简单,我很惊讶得到这么奇怪的错误......
在我的程序中,我有一个带有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文件中读取。有什么想法吗?
答案 0 :(得分:8)
也许我不明白,但getString(R.string.police1_phone)
必须有效。
答案 1 :(得分:0)
如果您希望他们准备好使用
之类的解析器SAXXParser(我总是使用) http://www.javaworld.com/javaworld/jw-05-2002/jw-0517-sax.html
JAVAXML: http://www.mkyong.com/tutorials/java-xml-tutorials/
如果需要,你可以编写自己的小解析器。
答案 2 :(得分:0)
如果您想使用R.string.xxx
,则需要将字符串值放在strings.xml
文件夹中名为/res/values/
的文件中。