Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中生成最终的全局变量_Android_Initialization_Global Variables_Final - Fatal编程技术网

如何在Android中生成最终的全局变量

如何在Android中生成最终的全局变量,android,initialization,global-variables,final,Android,Initialization,Global Variables,Final,我搜索了一下,但没有找到答案。 如何使变量成为最终变量和全局变量。 我已经试过了: public class StartActivity extends Activity { ... private final Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); ... } public class StartActivity extends Activ

我搜索了一下,但没有找到答案。 如何使变量成为最终变量和全局变量。 我已经试过了:

public class StartActivity extends Activity {
    ...
    private final Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    ...
}
public class StartActivity extends Activity {
    ...
    private final Dialog dialog;
    ...
}
但我有一个错误:

06-07 19:57:38.461: E/AndroidRuntime(13810): java.lang.RuntimeException:
Unable to instantiate activity ComponentInfo{com.xxx.xxx/com.xxx.xxx.
StartActivity}: java.lang.IllegalStateException: System services not available to
Activities before onCreate()
我不知道如何避免这个错误,因为当我尝试这个:

public class StartActivity extends Activity {
    ...
    private final Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    ...
}
public class StartActivity extends Activity {
    ...
    private final Dialog dialog;
    ...
}
并在onCreate()方法中初始化变量,我在Eclipse中遇到以下错误:

The blank final field dialog may not have been initialized.

移除最后一个修改器

public class StartActivity extends Activity {

private Dialog dialog; // declare it as a instance variable

@Override
protected void onCreate(Bundle savedInstanceState)
{ 
      super.onCreate(savedInstanceState);
      setContentView(R.layout.yourlayout);
      dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
      // initialize dialog
}  
现在,您可以在
onClick
中使用
对话框


另请注意
指的是活动上下文,一旦创建活动,上下文就可用。

为什么需要在
onCreate中实例化?在
onClick上实例化它

为什么需要它是最终的。移除最后一个修改器。将其声明为实例变量我需要该变量为final,因为我在onClick方法中使用它:
对话框。dismise
仍然不需要final修饰符。如果我在onClick中实例化了以下命令,则会出现错误:
空白的最终字段对话框可能尚未初始化。
您不再需要将其作为最终字段,请将其设置为局部变量。但我还在另一个函数中使用相同的对话框来获取视图
dialog.findViewById(…)
那么我会同意拉古南丹的答案——你试过了吗?