2016-04-20 56 views
1

我目前正在使用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(); 
    } 
} 

我收到一個錯誤與問候到線((複選框)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); 

回答

1

((複選框)R.id.vibratecbx)不給你一個複選框。

如果你想使用你的CheckBox,你需要從你膨脹的xml中獲得對它的引用。

例如,在你的活動,你可以在的onCreate

private CheckBox myCheckBox; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myCheckBox = (CheckBox) findViewById(R.id.vibratecbx); 
    } 

期間得到您的複選框,然後如你所願,你可以使用myCheckBox。

編輯

您可以保存複選框的狀態,當你點擊一個按鈕使用。 因此,在您的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); 
       } 
      } 
     }); 
     } 
+0

輝煌!沒有錯誤:)但這個問題的原意是看我如何使用if/else語句來打開或關閉應用程序的振動。任何想法如何? –

+0

我編輯了我的建議 – Gauthier

+0

雖然這看起來不錯,但我還是在遊戲課中初始化了另一個振動器實例,因爲當按下按鈕遊戲者按鈕時,它需要振動。我編輯了我的問題以包含代碼的其他部分 –

相關問題