2012-01-05 29 views
-1

它使我的应用程序读取为0字符串数组没有小数?

<string-array name="metric_threads_per_inch"> 
    <item>0.5</item> 
    <item>0.8</item> 
</string-array> 

下面是代码读它

int[] thread = kit.getIntArray(R.array.metric_threads_per_inch); 
    adapter3 = new NumericAdapter(thread); 
+0

更多详细信息请... – 2012-01-05 05:05:10

+0

你能告诉我们代码是0吗? – 2012-01-05 05:05:21

+0

请提供你如何阅读这个XML文件的代码。 – 2012-01-05 05:05:26

回答

0

我猜你是不正确解析字符串,使用类似:

final String[] sa = getResources().getStringArray(R.array.metric_threads_per_inch); 
final float f0 = Float.parseFloat(sa[0]); 
1

看来你在阅读String-Array的方式有问题,从resources,这里应该是怎么回事

String string[] = new String[2]; 
string = getResources().getStringArray(R.array.metric_threads_per_inch); 
for (int i = 0; i < string.length; i++) { 
    Log.d("value", string[i]); 
} 

OUTPUT:

01-05 10:45:46.502: DEBUG/value(462): 0.5 
01-05 10:45:46.502: DEBUG/value(462): 0.8 
+1

suriji rocks ... – Richa 2012-01-05 05:49:40

0

你还没有ü阐述如何访问代码...但你应该这样读它,因为我曾经尝试这样做,并得到0.5和0.8的输出

String[] mTestArray = getResources().getStringArray(R.array.metric_threads_per_inch); 

     for(int i=0;i<mTestArray.length;i++){ 
      Log.v("Log", "mTestArray : "+mTestArray[i]); 
     } 

希望它有帮助。

+0

谢谢你的所有帮助 – catalano 2012-01-05 05:32:09

0
int[] thread = kit.getIntArray(R.array.metric_threads_per_inch); 

您正在将字符串数组赋值给整数数组,然后如何获得浮点值,如您在字符串数组中声明的0.5,0.7。这些值将被四舍五入为整数,所以你会得到零。

不要使用整数,看看这里提供的许多答案来获得正确的值。检查它们。

0
Resources res = getResources(); 
String planets[] = res.getStringArray(R.array.sample); 
Float i = (Float)Float.parseFloat(planets[0].toString()); 
Toast.makeText(this,i.toString(),Toast.LENGTH_LONG).show(); 
+0

你必须采取浮法数组insare的Int – Sandy 2012-01-05 05:58:10

+0

上面的代码为我工作我的价值0.5 – Sandy 2012-01-05 05:58:53