有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用onLongClickListener快速更改值

我正在尝试创建一组按钮,只需轻轻一按,即可将值向上或向下更改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) 个答案

  1. # 1 楼答案

    按住按钮并不是长时间点击它。你需要一个 ^{}

    在onPressed方法中,检查MotionEvent是向上还是向下,然后开始/停止计数

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

    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
    }