`
haking
  • 浏览: 264456 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Activity的setContentView与findViewById

 
阅读更多

1. Activity.setContentView(int layoutResID)

 

Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.

 

2. Activity.findViewById(int id)

 

Finds a view that was identified by the id attribute from the XML that was processed in onCreate.

 

Activity在onCreate方法中,通过setContentView实例化layout描述的控件。之后,通过findViewById获取控件实例。所以,findViewById只是通过resId找到setContentView实例化的控件并返回View的引用,而非创建View后再返回其引用。因此,同一个activity实例,多次调用findViewById获取到的某个resId的View实例是同一个的。

分享到:
评论
2 楼 haking 2011-07-22  
yanhui.qi 写道
findViewById只是通过resId找到setContentView实例化的控件并返回View的引用,而非创建View后再返回其引用。因此,同一个activity实例,多次调用findViewById获取到的某个resId的View实例是同一个的。
  这句话不是很懂啊~~

我表达不好吧。这句话的意思就是说findViewById这个方法是只是去找setContentView已经实例化的View实例。比方说findViewById(R.id.aaa);这个方法无论执行多少次(只要activity没有退出),那么拿到的view实例都是同一个。
1 楼 yanhui.qi 2011-07-21  
findViewById只是通过resId找到setContentView实例化的控件并返回View的引用,而非创建View后再返回其引用。因此,同一个activity实例,多次调用findViewById获取到的某个resId的View实例是同一个的。
  这句话不是很懂啊~~

相关推荐

    Activity使用setContentView切换界面

    `setContentView`方法是`Activity`中用于加载布局文件到当前`Activity`的主要方法,使得我们能够在应用中展示不同的界面。现在,我们将深入探讨如何使用`setContentView`来切换界面以及其背后的原理。 ### 1. `...

    自定义注解实现IOC,代替findviewbyid,setcontentview,setListener

    在Android开发中,`findViewById`、`setContentView`和`setListeners`是常见的操作,用于在Activity或Fragment中查找并操作UI元素以及处理用户交互。然而,这些操作可能导致代码冗余,不易维护,且增加了耦合度。...

    setContentView学习例子

    在Android应用开发中,`setContentView`是一个至关重要的方法,它是连接XML布局文件与Java代码的关键,用于在Activity中加载用户界面。当我们谈论"界面切换"时,这通常涉及到在不同视图或屏幕之间平滑地过渡。在这个...

    Android注解省去findviewbyid

    setContentView(R.layout.activity_main); ButterKnife.bind(this); // 这一行会自动寻找并绑定注解的视图 } } ``` 这里,`@BindView(R.id.text_view_hello)`将`R.id.text_view_hello`对应的视图与`textViewHello...

    注解-findViewById

    setContentView(R.layout.activity_main); ButterKnife.bind(this); // 这一行会自动处理所有被@BindView注解的字段 } } ``` 这样就避免了在`onCreate()`方法中手动调用`findViewById()`。Butter Knife会在编译...

    Android之Activity应用小例子

    在Android开发中,Activity是应用程序的基本构建块,它代表了用户可以与之交互的界面。Activity通常用于展示屏幕上的信息,接收用户输入,并处理相关的事件。在这个“Android之Activity应用小例子”中,我们将深入...

    完美实现将activity作为dialog弹窗进行弹出

    setContentView(R.layout.activity_your); // 初始化UI及事件处理 // ... } ``` 此外,我们还需要处理Dialog的关闭事件。可以为确定或取消按钮添加点击监听器,调用`finish()`方法结束Activity,从而关闭Dialog...

    Android应用程序四大组件之Activity入门(Demo)

    setContentView(R.layout.activity_main); } } ``` 这里,onCreate()方法加载了布局文件(activity_main.xml),这个布局文件定义了Activity的UI。在XML布局文件中,你可以使用各种View组件(如TextView、Button...

    Android 悬浮Activity ( Dialog风格)

    setContentView(R.layout.activity_float); // 设置窗口类型 getWindow().setType(WindowManager.LayoutParams.TYPE_PHONE); // 设置尺寸和位置 int width = getResources().getDimensionPixelSize(R.dimen....

    第3章 Activity与Intent.pptx

    3. **界面组件管理**:利用Activity的findViewById(int id)方法查找并管理界面中的控件,以便根据需求调整它们的属性和行为。 4. **注册Activity**:在AndroidManifest.xml文件中,使用<activity.../>元素注册自定义...

    Activity与Fragment通过接口回调进行通信

    setContentView(R.layout.activity_main); // 其他初始化代码... } @Override public void onDataReceived(String data) { // 在这里处理Fragment传递过来的数据 Toast.makeText(this, "接收到的数据: " + ...

    简单实现Android的findviewbyid IOC框架

    setContentView(getLayoutId()); injectViews((T) this); } protected abstract int getLayoutId(); protected abstract void injectViews(T target); } ``` 接下来,我们需要为每个具体的Activity创建一个...

    09-01 rxbus从第二个activity发送消息给第一个activity,并后台更新第一个activity的UI

    setContentView(R.layout.activity_first); RxBus.instance() .toObservable(UpdateUIEvent.class) .observeOn(AndroidSchedulers.mainThread()) // 确保在主线程处理UI更新 .subscribe(event -> { // 更新UI...

    Activity界面的转化

    在Android应用开发中,Activity是Android系统中的一个核心组件,它是用户与应用程序交互的主要界面。Activity界面的转化涉及到了Android的生命周期、Intent机制、启动模式、任务栈管理等多个关键知识点,下面将对...

    activity之间的传值demo

    setContentView(R.layout.activity_target); Intent intent = getIntent(); String value = intent.getStringExtra("key"); // 使用接收到的数据 TextView textView = findViewById(R.id.text_view); ...

    Android 动态设置程序activity背景图片源码

    Activity是Android应用的基本组件,它负责与用户交互。每个Activity都有一个视图层次结构,这个层次结构由View和 ViewGroup组成,它们共同决定了界面的布局和显示。要动态改变Activity的背景,我们实际上是在修改根...

    安卓开发示例实现启动和关闭Activity

    setContentView(R.layout.activity_main); Button btnOpenSecondActivity = findViewById(R.id.btn_open_second_activity); btnOpenSecondActivity.setOnClickListener(new View.OnClickListener() { @Override...

    Android activity中间弹框

    setContentView(R.layout.activity_middle_dialog); // 获取屏幕宽度和高度 DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); ...

    Activity启动模式之singleTask示例代码

    2. 谨慎使用Intent的FLAG_ACTIVITY_CLEAR_TOP标志,它与singleTask一起使用时会清除栈中位于目标Activity之上的所有Activity,但保留目标Activity并将其置于栈顶。 3. 考虑到应用的导航流程,确保singleTask模式不会...

    实现应用对话框主题的Activity

    setContentView(R.layout.activity_dialog); Button positiveButton = findViewById(R.id.dialogPositiveButton); Button negativeButton = findViewById(R.id.dialogNegativeButton); positiveButton....

Global site tag (gtag.js) - Google Analytics