读取XML字符串从Java
的东西,我认为是如此简单,我很惊讶有愈演愈烈这样一个奇怪的错误...读取XML字符串从Java
在我的节目,我有与它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文件中将电话号码中的1个引号引起来,但它仍然无效。我的输出一直是一些随机的7位数字,甚至与我希望打印的电话号码差不多。此Java代码工作:
launchDialer("555-555-5555");
但是,我需要它从一个XML文件中读取。有任何想法吗?
也许我不明白,但getString(R.string.police1_phone)
必须工作。
如果你想他们已经准备好使用的解析器像
SAXXParser(我八方通使用) http://www.javaworld.com/javaworld/jw-05-2002/jw-0517-sax.html
JAVAXML: http://www.mkyong.com/tutorials/java-xml-tutorials/
你可以写你自己的小解析器,如果你想。
这个世界不需要另一个Java XML解析器 – 2011-08-17 12:50:52
是的,但它很容易写你自己的,如果它只是像这种情况下使用很少=) – jDourlens 2011-08-17 12:53:52
如果要使用R.string.xxx
,则需要将字符串值放入/res/values/
文件夹中名为strings.xml
的文件中。
“他们两个都不工作”并没有给我们太多的信息。发生了什么?你有例外吗?执行时“R.string.police2_phone”的价值是什么?基本上这里有一堆缺少的诊断信息...... – 2011-08-17 12:45:38
正如我所提到的,我在拨号程序中给了我一个随机的7位数字号码。它给我的电话号码是'213-096-8576',与实际电话号码相差很远,即'978-937-xxxx'。不管我如何描述上述的Java/XML文件,他们都给我随机的7位数字。 – Mxyk 2011-08-17 12:49:02