android 實現button雙擊事件
最近在學習linux核心定時器,所以用類似定時器的方法實現按鈕的雙擊事件
public class MainActivity extends Activity {
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
doSome1();
break;
case 2:
dosome2();
break;
}
}
};
private void doSome1() {
// Toast.makeText(MainActivity.this, "測試111111111111111", Toast.LENGTH_SHORT).show();
firstTime = 0;
}
private void dosome2() {
Toast.makeText(MainActivity.this, "測試222222222", Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
}
long firstTime = 0;
/**
* 例項代控制元件
*/
private void findView() {
this.findViewById(R.id.btn_test).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
choseState();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private void choseState() {
// handler.sendEmptyMessage(1);
if (firstTime == 0) {
firstTime = System.currentTimeMillis();
// 單擊
handler.sendEmptyMessageDelayed(1, 1000);
} else {
if (System.currentTimeMillis() - firstTime < 800) {
// 雙擊
handler.sendEmptyMessage(2);
}
}
}
}