android - EditText & Button 的声明位置
问题描述
public class MainActivity extends AppCompatActivity {
public static final String NAME = "android.example.br.CUSTOM_INTENT";
EditText edt = (EditText)findViewById(R.id.editText);
Button btn = (Button)findViewById(R.id.button2);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
有人能告诉我为什么我不能从onCreate函数中新建 EditText、Button。
public static final String NAME = "android.example.br.CUSTOM_INTENT";
EditText edt;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.button2);
edt = (EditText)findViewById(R.id.editText);
我知道它是这样工作的
是因为一切(按钮,editText ...)都将加载到onCreate函数中吗?
如果有什么没有清除,对不起我的英语
解决方案
您不能findViewById()
在方法之外编写,onCreate()
因为每个活动都有自己的生命周期,并且onCreate()
方法是第一个初始化我们在布局文件中设置的视图的所有对象的方法。所以,我们不能在onCreate()
方法之前初始化它们
在onStart()
调用该方法之后,onResume()
在我们的活动对用户可见并准备好进行用户交互的地方调用 then。
推荐阅读
- javascript - 在 javascript 中的 html 中创建条件
- python - 在函数中使用 keras 神经网络
- node.js - Linkedin Like 机器人
- c# - 将 Razor 页面渲染为字符串未找到的布局
- python - 在 Xcode 11.5 中构建 kivy-ios 应用程序失败并出现 Python 语法错误
- python-3.x - 如何从用户那里获取输入并将其传递给由python中的子进程调用触发的交互式命令行程序?
- javascript - onChange 不适用于移动设备?- 反应原生
- grpc - 使用 grpc 的 2 个微服务之间的通信如何工作?
- service - 如何在 /iwfnd/maint_service 中生成系统别名?
- sql - SQL根据参数从表中排除行