我正在开发一个小的手势应用程序,它创建并保存手势到文件中,并基于安卓示例中的gestureBuilder代码。
我想删除文件中存储的所有手势,代码的移植过程如下所示
private static GestureLibrary sStore;
final GestureLibrary store = sStore;
if (store.load())
{
for (String name : store.getGestureEntries())
{
for (Gesture gesture : store.getGestures(name))
{
final NamedGesture namedGesture = new NamedGesture();
namedGesture.gesture = gesture;
namedGesture.name = name;
sStore.removeGesture(namedGesture.name, namedGesture.gesture);
sStore.save();
}
}
}但是,在运行时会出现如下异常
03-13 14:42:07.009: E/AndroidRuntime(905):致命异常: main 03-13 14:42:07.009: E/AndroidRuntime(905):java.util.HashMap$HashIterator.nextEntry(HashMap.java:796) 03-13 14:42:07.009: E/AndroidRuntime(905):at java.util.HashMap$KeyIterator.next(HashMap.java:823) 03-13 14:42:07.009: E/AndroidRuntime(905):at java.util.ConcurrentModificationException 03-13 14:42: 42:07.009: E/AndroidRuntime(905):at com.likith.gesturebuilder.GestureBuilderActivity$2$1.onClick(GestureBuilderActivity.java:127) 03-13 14:42:07.009: E/AndroidRuntime(905):at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:159) 03-13 14:42:07.009: E/AndroidRuntime(905):at android.os.Handler.dispatchMessage(Handler.java:99) 03-13 14:42:07.009: E/AndroidRuntime(905):at android.os.Looper.loop(Looper.java:123) 03-13 14:42:07.009: E/AndroidRuntime(905):at java.lang.reflect.Method.invoke(Method.java:507) 03-13 14:42:07.009: E/AndroidRuntime(905):at android.os.Looper.loop(原生方法) 03-13 14:42:07.009: E/AndroidRuntime(905):at at 03-13 14:42:07.009: E/AndroidRuntime(905):at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-13 14:42:07.009: E/AndroidRuntime(905):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 03-13 14:42:07.009: E/AndroidRuntime(905):at dalvik.system.NativeStart.main(原生方法)
有没有什么方法可以删除手势文件中的所有手势,请帮助…
发布于 2015-11-22 04:17:29
1)如果您想要删除所有的手势(条目),请执行以下操作:
if (store.load()) {
try {
List list = new ArrayList();
for (String name : store.getGestureEntries()) {
list.add(name);
}
for (int i = 0; i < list.size(); i++) {
store.removeEntry(list.get(i).toString());
store.save();
}
}catch (Exception e){
System.out.println(e.getMessage());
}
}2)如果您一次只想删除一条条目:
if (store.load()) {
try {
for (String name : store.getGestureEntries()) {
if (name.equals("name of the entry you want to delete")) {
Gesture gesture = store.getGestures(name).get(0);
store.removeGesture(name, gesture);
store.save();
}
}
}catch (Exception e){
System.out.println(e.getMessage());
}
}我希望它能为你工作。
https://stackoverflow.com/questions/29035905
复制相似问题