1
내 앱에서 하나의 액티비티에서 다른 액티비티로 인 텐트를 보낼 수 있습니다. 그러나 일부 사용자는 이러한 데이터가 항상 0임을보고합니다. 비록 값이 전송 활동에 문제가없는 것을 볼 수는 있지만. 여기 인 텐트 엑스트라는 일부 장치에서만 작동합니다.
보내는 활동의 코드입니다 :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 예를 그것이 작동하지 않는다고 불평하는 고객들 (비디오 레코딩에서 문서화 됨).
제안 사항?
추가 정보로 float 대신 문자열을 사용하는 특별한 이유가 있습니까? 'putExtra()'는'float'을 취합니다; 'getFloatExtra()'는'float'을 반환합니다. 그 외에도, 엑스트라들은'startActivity()'또는'startActivityForResult()'를 호출 할 때 마술처럼 사라지지 않습니다. 상태 머신의 상태를 알아 내고 추가 경로가 첨부되지 않은 두 번째 활동을 호출하는 경로를 결정해야합니다. – CommonsWare
아니요 - 플로트를 사용하지 않을 이유가 없습니다.하지만 차이가 없어야합니다. 두 번째 액티비티가 호출되고 항상 엑스트라가 설정된 곳은 하나뿐입니다. – user1057831