2016-04-21 17 views
0

嗨,並且非常感謝大家對於已經很好地給予的幫助。首先讓我說我從來沒有使用android編程!我知道其他一些語言,但我最好是初學者。我被給了這個應用程序,以改變它從嗶嗶聲振動。使用創建時不可用的振動器實例服務時,Android應用程序關閉

thiyagab得這麼好給我下面的代碼:

import android.os.Vibrator; ... 

Vibrator v = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);

// Vibrate for 500 milliseconds v.vibrate(500);

PS。我悄悄在AndroidManifest.xml文件:

<uses-permission android:name="android.permission.VIBRATE"/> 

然而,當我編譯它,應用程序關閉和編譯器說的服務不是以前的onCreate可用。因此,在尋找儘管他的代碼,我看到的onCreate標題:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

和移動

Vibrator v = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);

該線下方將包括內的onCreate。然而,現在內這行代碼(其是進一步向上)

// Vibrate for 500 milliseconds

v.vibrate(500);

在V變量是紅色像它是未申報。當我將鼠標懸停在它上面時,它說無法解決。我知道這是一個愚蠢的問題。任何人都可以幫助這個新手?非常感謝!!!!

***** EDITED *********再次

感謝您的幫助!!!!

+0

請發佈您的整個java類。 –

+0

「清潔工程」有時會解決問題。 –

+0

這是我寫的代碼的一部分。 (見上) –

回答

1

您將不得不將v.vibrate(500);移動到v的聲明下方。但讓他們內外onCreate()

如果你想使用v其他地方,你必須先使用

Vibrator v; 

聲明它然後使用

v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 

而且使用它初始化它裏面onCreate()在這個類裏面的任何地方像這樣

v.vibrate(500); 
+0

我實際上已經嘗試過了,但它幾乎就像在onCreate之外不存在v一樣。謝謝! –

+0

我更新了我的答案。 –

+0

喬納斯,非常感謝!有效!最後一步,我需要編寫我的論文!謝謝!! –

1

這是否編譯?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Vibrator v = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE); 
    v.vibrate(500); 
} 
+0

是的!但是,正如你在上面看到的,我在onCreate之外使用v。它就像它不存在於onCreate之外。謝謝! –

相關問題