Intent extras仅适用于某些设备

时间:2012-06-02 11:33:06

标签: android android-intent extras

在我的应用程序中,我将一些意图附加内容从一个活动发送到另一个活动。但是有些用户报告说这些数据总是为零 - 尽管我可以看到发送活动中的值是正常的。

以下是发送活动的代码:

Intent intent = new Intent();
intent.setClass(waypointListView.this, addWaypointActivity.class);
intent.putExtra("latitude", String.format("%9.6f", globLatitude));
intent.putExtra("longitude", String.format("%9.6f", globLongitude));
startActivityForResult(intent, ACTIVITY_ADD_WAYPOINT);

以下是新活动中的内容:

Intent myIntent = getIntent();
String latitudeStr = myIntent.getExtras().getString("latitude");

try{
  globLatitude = Float.parseFloat(latitudeStr);
} catch(NumberFormatException nfe) {    
  globLatitude=0f;
}

String longitudeStr = myIntent.getExtras().getString("longitude");

try{
  globLongitude = Float.parseFloat(longitudeStr);
} catch(NumberFormatException nfe) {    
  globLongitude=0f;
}

在我的两台设备上工作正常,但我有3个客户抱怨它不起作用(记录在录像中)。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我尝试将代码更改为使用getFloatExtra()而不是getString并将其解析为float,它解决了问题。我觉得这样效率更高,但我仍然不明白为什么原始解决方案在某些设备上有效但在其他设备上无效。

案件结案!