使用onLongClickListener快速更改值

时间:2014-12-22 23:39:22

标签: java android button listener wear-os

我尝试创建一组按钮,只需轻按一下即可将值上下调整1,然后按住按钮快速更改数值。我无法弄清楚如何快速改变价值。这就是我所拥有的:

    btPlus.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        mTempo=mTempo+1;
        setTempo(mTempo + 1);
        tvTempo.setText(Integer.toString(mTempo));
      }  
    });
    btPlus.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public void onLongClick(View view) {
            mTempo = mTempo + 1;
            setTempo(mTempo + 1);
            tvTempo.setText(Integer.toString(mTempo));
        }
    });                              
    btMinus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mTempo=mTempo-1;
            setTempo(mTempo - 1);
            tvTempo.setText(Integer.toString(mTempo));
        }
    });
    btMinus.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public void onLongClick(View view) {
            mTempo = mTempo - 1;
            setTempo(mTempo - 1);
            tvTempo.setText(Integer.toString(mTempo));
        }
    });    
    return rootView;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

按住按钮不是长按它。您需要 onTouchListener

在onPressed方法中检查MotionEvent是UP还是DOWN,然后开始/停止计数。

编辑:尝试在线程中计数,类似:

Final Thread t = new Thread(new Runnable(){
       @Override public void run(){
          while(!t.isInterrupted(){
             setTempo(mTempo++);
          }
       }
switch (event){
case ACTION_DOWN: 
       t.start();
       break;
case ACTION_UP:
       t.interrupt();
       break
}