1. 程式人生 > >android 實現button雙擊事件

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);
   }
  }

 }
}