2011-08-17 86 views
2

的东西,我认为是如此简单,我很惊讶有愈演愈烈这样一个奇怪的错误...读取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文件中读取。有任何想法吗?

+2

“他们两个都不工作”并没有给我们太多的信息。发生了什么?你有例外吗?执行时“R.string.police2_phone”的价值是什么?基本上这里有一堆缺少的诊断信息...... – 2011-08-17 12:45:38

+0

正如我所提到的,我在拨号程序中给了我一个随机的7位数字号码。它给我的电话号码是'213-096-8576',与实际电话号码相差很远,即'978-937-xxxx'。不管我如何描述上述的Java/XML文件,他们都给我随机的7位数字。 – Mxyk 2011-08-17 12:49:02

回答

8

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

0

如果你想他们已经准备好使用的解析器像

+0

这个世界不需要另一个Java XML解析器 – 2011-08-17 12:50:52

+0

是的,但它很容易写你自己的,如果它只是像这种情况下使用很少=) – jDourlens 2011-08-17 12:53:52

0

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