2017-08-22 4 views
0

私は無効化してonLongClickを有効にしたいと考えていますが、無効にした後は長時間クリックすることができません。EditTextがあります。何をしますか?無効になっているEditTextでonLongClickの作業を行うにはどうすればいいですか?

これは私が目的のために書いたコードだった:

for (int j = 0; j < noOfDigits; j++) { 
     final int k = j; 

     etReference[j].setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View view) { 
       if(etReference[k].isEnabled()) { 
        etReference[k].setEnabled(false); 
       } 
       else if(!etReference[k].isEnabled()){ 
        etReference[k].setEnabled(true); 
       } 
       return false; 
      } 
     }); 
} 

答えて

0

無効のコンポーネントは、それがinterectイベントを発生しないことを意味します。

本当にしたい場合は、setOnTouchEventを設定し、自分でLongClickを解析する必要があります(DOWN + NOT MOVE + 500ms)。

+0

これをコードに翻訳できますか? – Abhijeet

+0

いいえ、複雑すぎるので、イベントの種類に基づいてイベントを解析する方法を学ぶ必要があります。私が言うことができることは、あなたがダウンでハンドラにpostDelayedを発動し、移動が発生した場合にそれを取り消すべきだということです。しかし、移動イベントはあなたの思考よりも一般的ですので、移動距離、 16dpは正常に動作します。 –

+0

答えを確認するこのメソッドの実装はhttps://stackoverflow.com/questions/4324362/detect-touch-press-vs-long-press-vs-movement –

関連する問題