需求:需要给一个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();
- }
- }
- });
- }
- }