gpt4 book ai didi

java - getTypedArray 调用后 TypedArray 为空

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:35 24 4
gpt4 key购买 nike

我有一个简单的谷歌地图实现,我用 strings.xml 中的 double 填充两个类型数组,这样我就可以使用它们来填充经度和纬度。

方法如下:

@Override
public void onMapReady(GoogleMap map) {

map.setMyLocationEnabled(true);
TypedArray lats = getResources().obtainTypedArray(R.array.Lats);
TypedArray longs = getResources().obtainTypedArray(R.array.Longs);
int length = longs.getIndexCount();
Log.e("MY APP LOG", "here");
Log.e("MY APP LOG", "length = " + length);
for(int i = 0; i < length; i++)
{
LatLng coord = new LatLng(lats.getFloat(i,0),longs.getFloat(i,0));
Log.e("MY APP LOG", "here2");
Log.e("MY APP LOG", "latitude = " + lats.getFloat(i,0));

map.addMarker(new MarkerOptions()
.title("Sydney")
.snippet("The most populous city in Australia.")
.position(coord));
}
LatLng coord = new LatLng(lats.getFloat(0,0),longs.getFloat(0,0));

map.moveCamera(CameraUpdateFactory.newLatLngZoom(coord, 13));


}

我的 strings.xml:

<array name="Lats">
<item>-33.867</item>
<item>-33.869</item>
<item>-33.871</item>
<item>-33.873</item>
<item>-33.876</item>
<item>-33.881</item>
<item>-33.883</item>
<item>-33.885</item>
<item>-33.891</item>
</array>

<array name="Longs">
<item>151.206</item>
<item>151.209</item>
<item>151.211</item>
<item>151.205</item>
<item>151.204</item>
<item>151.207</item>
<item>151.203</item>
<item>151.201</item>
<item>151.200</item>
</array>

logcat 显示:

04-30 05:00:00.727  24986-24986/com.example.andrew.ubair4 E/MY APP LOG﹕ here
04-30 05:00:00.727 24986-24986/com.example.andrew.ubair4 E/MY APP LOG﹕ length = 0

最佳答案

尝试在字符串资源中将纬度和经度定义为String-Array:

<string-array name="lats">
<item>-33.867</item>
<item>-33.869</item>
<item>-33.871</item>
<item>-33.873</item>
<item>-33.876</item>
<item>-33.881</item>
<item>-33.883</item>
<item>-33.885</item>
<item>-33.891</item>
</string-array>

<string-array name="longs">
<item>151.206</item>
<item>151.209</item>
<item>151.211</item>
<item>151.205</item>
<item>151.204</item>
<item>151.207</item>
<item>151.203</item>
<item>151.201</item>
<item>151.200</item>
</string-array>

String[] lats = getResources().getStringArray(R.array.lats);
String[] longs = getResources().getStringArray(R.array.longs);

for(int i=0;i<longs.length;i++){
LatLng coord = new LatLng(Double.parseDouble(lats[i]),Double.parseDouble(longs[i]));
map.addMarker(new MarkerOptions()
.title("Sydney")
.snippet("The most populous city in Australia.")
.position(coord));
}

关于java - getTypedArray 调用后 TypedArray 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29967258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com