Android中实现双击事件

 需求:需要给一个view实现双击效果,查看了api,发现没有api可以调用, 于是从网上参考了一段代码。



xml布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/double_test"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="#FF00FF"/>

</RelativeLayout>



MainActivity类

public class MainActivity extends Activity {
	private long[] mHits = new long[2];//存储时间的数组
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		View view=findViewById(R.id.double_test);
		view.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
	                        //实现数组的移位操作,点击一次,左移一位,末尾补上当前开机时间(cpu的时间)
				System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
				mHits[mHits.length - 1] = SystemClock.uptimeMillis();
				//双击事件的时间间隔500ms
				if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {
					Toast.makeText(MainActivity.this, "双击事件!!!", 0).show();
				}
			}
		});
	}
}


参考链接


原文地址:https://www.cnblogs.com/yishaochu/p/5078626.html