Создайте свой собственный DoubleTapListener
Вы можете создать DoubleTapListener, унаследовав View.OnClickListener
и добавив Callback вашего слушателя.
MyDoubleClickListener.class
public class MyDoubleClickListener implements View.OnClickListener{
private boolean isRunning= false;
private int resetInTime =500;
private int counter=0;
private DoubleClickCallback listener;
public DoubleTapListener(Context context)
{
listener = (DoubleClickCallback)context;
}
@Override
public void onClick(View v) {
if(isRunning)
{
if(counter==1) //<-- makes sure that the callback is triggered on double click
listener.onDoubleClick(v);
}
counter++;
if(!isRunning)
{
isRunning=true;
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(resetInTime);
isRunning = false;
counter=0;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
}
}
DoubleClickCallback.class
public interface DoubleClickCallback {
public void onDoubleClick(View v);
}
И все готово. Вы можете использовать этот слушатель в любой деятельности.
Как использовать этот DoubleClickListener в моей деятельности?
Реализация обратного вызова в вашей деятельности и переопределение метода.
public class MainActivity extends AppCompatActivity implements MyDoubleClickListener{
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new DoubleTapListener(this)); //<-- Set listener
}
@Override
public void onDoubleClick(View v) {
// Toast to show double click
}
}
Важным моментом является то, что при использовании этой концепции вы можете создать любой тип слушателя (слушатель с тройным щелчком мыши)
Соответствующие ссылки:
См. Полный рабочий код ЗДЕСЬ