如何在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(…)
那么我会同意拉古南丹的答案——你试过了吗?