2016-04-21 21 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之外。谢谢! –

相关问题