在 Android 个活动之间传递 Location 对象
Passing Location object between Android activities
我有一个 Location 对象,我想将其传递给另一个 activity。
我阅读了如何使用序列化传递自定义对象以及如何传递预定义对象。
一种解决方案是创建一个仅包含 Location 变量的自定义 class。还有其他方法吗?
您可以转换为 json 字符串,然后 post 将其转换为其他 activity
使用这个库
gson
和转换代码
String pLocation = new Gson().toJson(mLocation);
就像 @nongthonbam-tonthoi 提供的一样:
位置由 3 个值定义:纬度、经度和精度(本质上是一个点 + 半径)。
Location loc = getLocationFromSomewhere();
Data myData = new Data.Builder()
.putDouble(KEY_LOC_LAT, loc.getLatitude())
.putDouble(KEY_LOC_LON, loc.getLongitude())
.putDouble(KEY_LOC_ACCURACY, loc.getAccuracy())
.build();
OneTimeWorkRequest myWork = new OneTimeWorkRequest.Builder(MyWorker.class)
.setInputData(myData)
.build();
WorkManager.getInstance().enqueue(myWork);
我有一个 Location 对象,我想将其传递给另一个 activity。 我阅读了如何使用序列化传递自定义对象以及如何传递预定义对象。 一种解决方案是创建一个仅包含 Location 变量的自定义 class。还有其他方法吗?
您可以转换为 json 字符串,然后 post 将其转换为其他 activity
使用这个库 gson
和转换代码
String pLocation = new Gson().toJson(mLocation);
就像 @nongthonbam-tonthoi 提供的一样: 位置由 3 个值定义:纬度、经度和精度(本质上是一个点 + 半径)。
Location loc = getLocationFromSomewhere();
Data myData = new Data.Builder()
.putDouble(KEY_LOC_LAT, loc.getLatitude())
.putDouble(KEY_LOC_LON, loc.getLongitude())
.putDouble(KEY_LOC_ACCURACY, loc.getAccuracy())
.build();
OneTimeWorkRequest myWork = new OneTimeWorkRequest.Builder(MyWorker.class)
.setInputData(myData)
.build();
WorkManager.getInstance().enqueue(myWork);