2017-05-29 1 views
0

私はロボットをやっていますが、助けになるコードを見つけましたが、それはクリッカーがあり、私は保有者を欲しがります。onclicklistenerをホルダーに置き換えるにはどうすればいいですか?

私は、ロボットカーです。私のアプリでは短いタップしかできませんが、長いタップが必要です。

お願いします!

これは、それらのうちの一つのコードです:

btnUp = (Button) findViewById(R.id.button2); 
btnUp.setOnClickListener(new View.OnClickListener() 
    { 
    @Override 
    public void onClick(View v) { 
     up(); 
    } 
    }); 

private void up() { 
    if (btSocket != null) { 
    try { 

     btSocket.getOutputStream().write("d".toString().getBytes()); 
    } catch (IOException e) { 
     msg("Error"); 
    } 
    } 
} 

[dgfhg[1]

+2

"私は所有者がほしい"とはどういう意味ですか?あなたの質問は明確ではありません。 –

+0

私はロングタップを短くするだけでなく、 – Armand09

+2

を見てください。https://developer.android.com/training/gestures/detector.html – Isaac

答えて

0

あなたはonTouchListenerの助けを借りてこれを行うと、ユーザーがボタンの上に指を置いたときに検出し、それを押すと、いつ開始することができます彼の指を持ち上げて、そのボタンを止める。

btnUp.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       switch(motionEvent.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
         //start pressing 
         //user start putting down button 
         //start doing what you want 
         break; 
        case MotionEvent.ACTION_UP: 
         //end pressing 
         //user stop pressing the button and lift his finger 
         //stop doing what you were 
         break; 
       } 
       return false; 
      } 
     }); 
0

ロングタップ(長押し)を行うには、あなたは少し長い時間のためにボタンを押したままにする必要があり、あなたの代わりにsetOnClickListenerのsetOnLongCLickListenerを使用する必要があります。お役に立てれば。

btnUp.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View view) { 

      up(); 
      return false; 
     } 
    }); 
関連する問題