首页 > 解决方案 > 关于 setContentView 的说明

问题描述

有什么区别:

setContentView(R.layout.activity_main);        
TextView txtView = (TextView)findViewById(R.id.text); 

TextView textView = new TextView(this);
setContentView(textView);

我找到了这两段代码。首先,setContentView我向它传递了一个关于布局的信息。在第二种情况下,它有一个作为参数传递的视图。textView 也是一个 id。我认为不同之处在于,在第一种情况下,它是 XML 文件中描述的 activity_main 的布局(也包含 textView),而在第二种情况下,它是 textView 的 id。告诉我我是否正确。

还告诉我这里的“这个”指的是什么。为什么我们 findViewById在第一种情况下使用?

标签: androidsetcontentview

解决方案


Activity.setContentView()有2个签名。一种是以layout id为参数,另一种是以View为参数。实际上还有第三个将 View 和 ViewGroup.LayoutParam 作为输入。

这三种方法都采用他们得到的东西(一个视图或一个布局来膨胀)并将其设置为它们的根元素。简而言之:这里没有真正的区别。开发人员可以选择几个选项来告诉 Activity 其根 UI 元素

另请参阅:setContentView 说明

然后,该行在TextView txtView = (TextView)findViewById(R.id.text);Activity 内容中搜索 ID 为“text”的 TextView(在这种情况下,R.layout.activity_main 中的每个视图)。

该行TextView textView = new TextView(this);以编程方式创建一个新的 TextView 而不是膨胀布局 xml。该this参数是一个上下文实例。创建视图总是需要一个上下文实例。一个活动是一个上下文。


推荐阅读