无法更新自定义适配器中的项目

时间:2017-06-27 13:00:43

标签: java android listview adapter custom-adapter

我试图为listview中的每个项目添加touchlistener。 这里是我的CustomAdapter for currentView中的代码(我认为)

rowView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        x1 = event.getX();
                       return true;
                    case MotionEvent.ACTION_UP:
                        x2 = event.getX();
                        float deltaX = x2 - x1;
                        if (Math.abs(deltaX) > MIN_DISTANCE) {
                            if (x2 > x1) {
                                LEFT = false;
                                Logger.e("FALSE ");
                                txtTitle.setText("LEFT TO RIGHT");
                                moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
                                moveLefttoRight.setDuration(1500);
                                moveLefttoRight.setFillAfter(true);
                                swipeLayout.setAnimation(moveLefttoRight);
                                HomeChatAdapter.super.notifyDataSetChanged();
                            }
                            else {
                                LEFT = true;
                                Logger.e("TRUE");
                                txtTitle.setText("RIGHT TO LEFT");
                                moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
                                moveLefttoRight.setDuration(1500);
                                moveLefttoRight.setFillAfter(true);
                                swipeLayout.setAnimation(moveLefttoRight);

                            }

                        } else {
                            CLICKITEM = true;
                            return false;
                        }
                        break;
                }
                return false;
            }
        });

动画和view.setText(“blabla”)的问题 当我从左到右或从右到左完成滑动时 屏幕上没有变化 如果我搬出去 txtTitle.setText(“LEFT TO RIGHT”);

                        moveLefttoRight = new TranslateAnimation(0, -150, 0, 0);
                        moveLefttoRight.setDuration(1500);
                        moveLefttoRight.setFillAfter(true);
                        swipeLayout.setAnimation(moveLefttoRight);

来自TouchListener的这部分代码 - 完全没问题但是在创建时它的工作一次。 在这种情况下,有什么可以帮我解决问题的方法吗? 只想将列表视图中的项目向左或向右移动。关注彼得。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您想使用

swipeLayout.startAnimation(...);

代替。

根据setAnimation vs startAnimation in android

  

setAnimation

     

设置要为此视图播放的下一个动画。但是视图动画可以   尚未开始。

     

startAnimation

     

如果您想立即播放动画,请使用startAnimation。   该方法允许对开始时间进行细粒度控制   和失效,但你必须确保

     

1)动画设置了开始时间,

     

2)假设动画时视图无效   启动。