我目前正在使用android studio构建我的第一个Android应用程序。我有按钮按下游戏,目前在游戏过程中按下按钮时会振动。我想进行切换以打开和关闭按钮。目前,我有这样的事情:
public void onCheckBoxClicked(View view){
Vibrator vibrate = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
boolean checked = ((CheckBox)R.id.vibratecbx).isChecked();
if(checked){
}
else{
vibrate.cancel();
}
}
我收到关于线路((CheckBox)R.id.vibratecbx)关于不兼容类型的错误,所以我需要修复它,以及看看如何切换实际为游戏打开或关闭振动选项。 谢谢:))
这是按下按钮的主要游戏文件部分:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//vibrate on press
Vibrator vibrate = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
boolean isVibrator = vibrate.hasVibrator();
if(isVibrator)
vibrate.vibrate(50);
答案 0 :(得分:1)
如果你想使用你的CheckBox,你需要从你膨胀的xml中获取它的引用。
例如,在您的活动中,您可以在onCreate
期间获取Checkboxprivate CheckBox myCheckBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myCheckBox = (CheckBox) findViewById(R.id.vibratecbx);
}
然后您可以根据需要使用myCheckBox。
修改强>
您可以保存CheckBox的状态,并在单击按钮时使用它。 因此,在onClickListener中,您可以检查应用程序是否应该振动。
因此:
private CheckBox myCheckBox;
private Vibrator myVibrator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myCheckBox = (CheckBox) findViewById(R.id.vibratecbx);
myVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
....
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ... your actions
if(myVibrator.hasVibrator() && myCheckBox.isChecked())
{
// Vibrate for 400 milliseconds
myVibrator.vibrate(400);
}
}
});
}