android 中监听按键的长按事件
2012-12-20 19:43:43 来源:WEB开发网核心提示:collapseCameraControls();//fulin@20121101@fix PD1218 B121027-224onShutterButtonClick();}}}if (mCameraAppView.getVisibility() != View.VISIBLE) {return false;}ret
collapseCameraControls();//fulin@20121101@fix PD1218 B121027-224
onShutterButtonClick();
}
}
}
if (mCameraAppView.getVisibility() != View.VISIBLE) {
return false;
}
return true;
}
onShutterButtonClick();
}
}
}
if (mCameraAppView.getVisibility() != View.VISIBLE) {
return false;
}
return true;
}
return super.onKeyUp(keyCode, event);
}
互斥处理的原因是,长按事件处理完后,松开按键后就会执行 onKeyUp 函数。而这两处针对相同的按键想要实现的功能又不一样
固在此添加一个 private boolean lockLongPressKey = false; 变量,在 onKeyLongPress 函数中处理过以后,在 onKeyUp中便不再处理。
2, button
自定义的 button 长按事件则是通过实现 OnLongClickListener 接口来做到的。
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnLongClickListener; import android.widget.Button; import android.widget.Toast; public class MyActivity extends Activity implements OnLongClickListener{ Button button;//声明按钮的引用 public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法 super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) this.findViewById(R.id.button);//得到按钮的引用 button.setTextSize(20); button.setOnLongClickListener(this);//注册监听 } public boolean onLongClick(View v) {//实现接口中的方法 if(v == button){//当按下的是按钮时 Toast.makeText( this, "长时间按下了按钮", Toast.LENGTH_SHORT ).show();//显示提示 } return false; } }
更多精彩
赞助商链接