1
在我的应用程序中,我将一些意图演员从一项活动发送到另一项。但是有些用户反馈说这些数据总是为零 - 尽管我可以看到发送活动中的值是正确的。意图演员只能在某些设备上工作
这里的发送活动代码:
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箱子的顾客抱怨它不起作用(记录在录像中)。
有什么建议吗?
任何特定的原因,你使用字符串而不是浮动作为你的额外? 'putExtra()'带一个'float'; 'getFloatExtra()'返回一个'float'。除此之外,extras在调用'startActivity()'或'startActivityForResult()'时不会神奇地消失。您需要计算出状态机的状态,并确定哪些路径正在调用您的第二个活动,而这些额外活动不会被附加。 – CommonsWare
不 - 没有理由不使用浮动 - 但我想这应该没有任何区别。 只有一个地方可以调用第二个活动,并且总是设置额外的。 – user1057831