版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bbtianshi/article/details/80307157
第一种
创建 一个抽象的类 DoubleClickListener 实现 OnClickListener
public abstract class DoubleClickListener implements View.OnClickListener {
private static final long DOUBLE_TIME = 1000;
private static long lastClickTime = 0;
@Override
public void onClick(View v) {
long currentTimeMillis = System.currentTimeMillis();
if (currentTimeMillis - lastClickTime < DOUBLE_TIME) {
onDoubleClick(v);
}
lastClickTime = currentTimeMillis;
}
public abstract void onDoubleClick(View v);
}
下面对应的 Activity
public class DoubleActivity extends AppCompatActivity {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_double);
btn = (Button)findViewById(R.id.double_click);
btn.setOnClickListener(new DoubleClickListener() {
@Override
public void onDoubleClick(View v) {
btn.setText("改变");
}
});
}
}
第二种比较麻烦
在对应的MainActivity里面
long mLastTime=0;
long mCurTime=0;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
Toast.makeText(SendActivity.this,"这是单击事件",Toast.LENGTH_LONG).show();
break;
case 2:
Toast.makeText(SendActivity.this,"这是双击事件",Toast.LENGTH_LONG).show();
shuangji.setTextColor(2);
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send);
shuangji = (Button)findViewById(R.id.double_click);
shuangji.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLastTime=mCurTime;
mCurTime= System.currentTimeMillis();
if(mCurTime-mLastTime<300){//双击事件
mCurTime =0;
mLastTime = 0;
handler.removeMessages(1);
handler.sendEmptyMessage(2);
}else{//单击事件
handler.sendEmptyMessageDelayed(1, 310);
}
}
});
}