gpt4 book ai didi

java - Android/Java 试图找出放置变量声明的位置

转载 作者:行者123 更新时间:2023-11-29 03:55:10 25 4
gpt4 key购买 nike

我是 Android 开发的新手,到目前为止,我主要是想弄清楚如何让教程代码在我正在构建的应用程序中运行。我一直在努力理解在哪里声明变量以及为什么我复制并粘贴了一些最终出现错误的教程。

例如,我正在尝试学习如何使用 ViewFlipper。从这个tutorial当我在 OnClick 中使用它时,Eclipse 告诉我 vf 不是变量,我遇到了问题。所以当我移动线时:

ViewFlipper vf = (ViewFlipper)findViewById(R.id.viewFlipper1);

在我的 OnCreate 方法之上,然后它就可以工作了。为什么我看到那么多教程都在 OnCreate 中声明了变量,为什么它对我不起作用?声明它们的适当位置在哪里?我了解封装和继承的基础知识,那么 OnCreate 是否就像任何其他方法一样,其中声明的任何变量都与其他方法隔离?我的按钮怎么样,我应该在我的类中但在 OnCreate 之外声明它们吗?

最佳答案

Why do I see so many tutorials with the variables declared in OnCreate and why doesn't it work for me?

在方法内或外部声明变量,真正归结为哪种类型的 scope你想与变量关联。
在方法内部,您需要小心声明一个变量,然后再打算使用它。

Where is the appropriate place to declare them?

在何处声明变量的适当性完全取决于您要在何处使用它。当您只打算在方法中使用它时,在类级别声明一个变量是不明智的。在方法中声明变量,当类中的许多其他方法想要访问它时,你最终将变量传递给每个方法——也是不明智的。所以现在,您可以考虑:

  1. 在类中声明变量 - 当类中的许多方法需要访问它时。
  2. 在方法中声明变量 - 当只有方法使用变量时。

我想补充一点,12不是可以盲目应用的通用规则 - 但要开始一个开始,您可以跟随它们,直到您找出与变量作用域、访问规范和生命周期相关的更深层次的细微差别。

我在这里不是在谈论访问说明符,因为它们值得更详细的了解,您可以得到 here .我也没有在这里讨论实例变量与类变量的区别,因为你最好引用像 this one 这样的官方文档。 .

I understand the basics of encapsulation and inheritance, so is onCreate just like any other method and any variables declared in there are isolated from other methods?

没错。

What about my buttons, should I declare those inside my class but outside the onCreate?

Android 中的 UI 组件通常需要通过多种方法来访问。 TextViewButton 等 - 通常具有需要在不同时间通过不同方法更改的状态 - 因此您最好在类级别声明它们。

您应该更喜欢在类级别声明 UI 变量的另一个重要原因是,您可以减少让 Android 框架为每个方法调用创建它们的开销。只要您的 Activity 实例处于 Activity 状态,框架就会保留 UI 组件/变量。

关于java - Android/Java 试图找出放置变量声明的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com