首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从手势文件中删除手势

从手势文件中删除手势
EN

Stack Overflow用户
提问于 2015-03-13 23:17:23
回答 1查看 394关注 0票数 0

我正在开发一个小的手势应用程序,它创建并保存手势到文件中,并基于安卓示例中的gestureBuilder代码。

我想删除文件中存储的所有手势,代码的移植过程如下所示

代码语言:javascript
复制
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(原生方法)

有没有什么方法可以删除手势文件中的所有手势,请帮助…

EN

回答 1

Stack Overflow用户

发布于 2015-11-22 04:17:29

1)如果您想要删除所有的手势(条目),请执行以下操作:

代码语言:javascript
复制
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)如果您一次只想删除一条条目:

代码语言:javascript
复制
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());
                }
            }

我希望它能为你工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29035905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档