如何调用AndroidWear中保存的dataItem?
How to call saved dataItem in Android Wear?
我正在创建一个可以通过 phone.
上的应用自定义颜色的表盘
我看到示例使用 DataApi
和 DataItem
到 save/load 设置。
我遇到的问题是,当我换到不同的表盘并改回来时,DataMap
中的所有值似乎都重置为 null 或 0。
这是我的 Wear 表盘的 onCreate()
方法示例,它将尝试加载上次使用的颜色:
PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient);
results.setResultCallback(new ResultCallback<DataItemBuffer>() {
@Override
public void onResult(DataItemBuffer dataItems) {
if (dataItems.getCount() != 0) {
for (int i = 0; i < dataItems.getCount(); i++) {
DataMapItem dataMapItem = DataMapIfromDataItem(dataItems.get(i));
if (dataMapItem.getDataMap().containsKey(COLOR_KEY)) {
mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_PATH);
}
}
}
dataItems.release();
}
});
请注意,mSelectedColor = dataMap...
行将 return 0。
以下是将存储此数据的移动应用程序的代码示例:
PutDataMapRequest dataMap = PutDataMapRequest.create(COLOR_PATH);
dataMap.getDataMap().putInt(COLOR_KEY, mSelectedColor);
Sending/retreiving 颜色值有效,而 运行,并且 onDestroy()
或 onStop()
没有将数据修改回 0。
当 activity/watchface 关闭时,dataItems 会自动 "disposed" 吗?还是我实施这个东西有误?
感谢您的帮助!
我认为您在 getInt
调用中输入了错误的常量。 COLOR_PATH
是 URI 路径,COLOR_KEY
是您要检索的 int
的键。你应该有:
mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_KEY);
我正在创建一个可以通过 phone.
上的应用自定义颜色的表盘我看到示例使用 DataApi
和 DataItem
到 save/load 设置。
我遇到的问题是,当我换到不同的表盘并改回来时,DataMap
中的所有值似乎都重置为 null 或 0。
这是我的 Wear 表盘的 onCreate()
方法示例,它将尝试加载上次使用的颜色:
PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient);
results.setResultCallback(new ResultCallback<DataItemBuffer>() {
@Override
public void onResult(DataItemBuffer dataItems) {
if (dataItems.getCount() != 0) {
for (int i = 0; i < dataItems.getCount(); i++) {
DataMapItem dataMapItem = DataMapIfromDataItem(dataItems.get(i));
if (dataMapItem.getDataMap().containsKey(COLOR_KEY)) {
mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_PATH);
}
}
}
dataItems.release();
}
});
请注意,mSelectedColor = dataMap...
行将 return 0。
以下是将存储此数据的移动应用程序的代码示例:
PutDataMapRequest dataMap = PutDataMapRequest.create(COLOR_PATH);
dataMap.getDataMap().putInt(COLOR_KEY, mSelectedColor);
Sending/retreiving 颜色值有效,而 运行,并且 onDestroy()
或 onStop()
没有将数据修改回 0。
当 activity/watchface 关闭时,dataItems 会自动 "disposed" 吗?还是我实施这个东西有误?
感谢您的帮助!
我认为您在 getInt
调用中输入了错误的常量。 COLOR_PATH
是 URI 路径,COLOR_KEY
是您要检索的 int
的键。你应该有:
mSelectedColor = dataMapItem.getDataMap().getInt(COLOR_KEY);