我搜索过但没有找到答案。 如何将变量设为final和global。 我已经尝试过了:
public class StartActivity extends Activity {
...
private final Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
...
}
但我收到了这个错误:
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;
...
}
并在onCreate()方法中初始化变量,我在Eclipse中得到了这个错误:
The blank final field dialog may not have been initialized.
答案 0 :(得分:0)
删除最终修饰符
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
}
现在,您可以使用dialog
中的onClick
。
另请注意,this
表示创建活动后可以使用活动上下文和上下文。
答案 1 :(得分:0)
为什么需要在onCreate
中实例化?在onClick
上实例化。