我刚开始学习Android App开发。我有Android Studio 1.4。在我的布局文件夹中,我有两个XML文件(content_main.xml
和activity_main.xml
)。我使用在线教程来学习,但他们只有activity_main.xml
。所以我想知道的是应该在这些相应文件中使用的功能是什么。我可以使用activity_main.xml
并让对方成为吗?反之亦然。
答案 0 :(得分:10)
现代Android方法基于Fragments
,在某种程度上,它是“小活动”,您可以放入Activities
,获得很大的灵活性。
因此,activity_main.xml
只是包含容器的Activity布局(最有可能是FrameLayout
),content_main.xml
是在MainActivity.java
内的某个位置放入此容器的Fragment的布局。您应该在那里学习代码以更好地理解它:)
答案 1 :(得分:6)
据我所知,您的activity_main.xml
文件中必须包含以下声明:
<include layout="@layout/content_main" />
这意味着它正在调用具有实际元素的content_main.xml
。
如果您剪切并粘贴content_main.xml
文件的所有内容并将其粘贴到activity_main.xm
l文件中以代替include语句(标记),则不会有任何问题。
您可以在执行上述操作后删除content_main.xml
。
在您的活动中setContentView()
语句应如下所示:
setContentView(R.layout.activity_main);
答案 2 :(得分:2)
根据android studio中的新设计模式,activity_main.xml将确定主要活动的外观应该如何。另一方面,content_main.xml将确定activity_main.xml中的内容。那就是content_main.xml将包含textview,edittext,button等组件。而且content_main.xml将包含在activity_main.xml中。
因此,我们可以将content_main.xml视为HTML中的partial。 activity_main.xml将包含您的活动全局设计,以及 content_main.xml内容。
What is the role of content_main.xml in android studio 1.4?
因此,似乎content_main.xml是Android Studio 1.4中引入的新设计模式的一部分。 目前,为了与教程相处,您可以找到“空白活动”#39;在创建新项目时。它不包含content_main.xml。
如前所述,您的活动使用的布局文件在活动的setContentView(R.layout.activity_main);
函数中设置为onCreate
。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
答案 3 :(得分:0)
使用在Activity类中设置的那个。我的意思是设置为setContentView()。或者如果您想要更多描述,请提供您的代码。
答案 4 :(得分:0)
我还没有看到Android Studio为一个活动创建两个布局文件。也许content_main.xml
是为之前的活动生成的,不是吗?
无论如何,布局文件的名称是什么并不重要。选择一个然后去做吧。只需记住在您的活动中设置正确的:
@Override
protected void onCreate(Bundle savedInstanceState){
setContentView(R.layout.your_layout_here);
}