为什么默认情况下有content_main.xml和activity_main.xml而不仅仅是activity_main.xml?

时间:2015-10-29 12:18:14

标签: android xml

我刚开始学习Android App开发。我有Android Studio 1.4。在我的布局文件夹中,我有两个XML文件(content_main.xmlactivity_main.xml)。我使用在线教程来学习,但他们只有activity_main.xml。所以我想知道的是应该在这些相应文件中使用的功能是什么。我可以使用activity_main.xml并让对方成为吗?反之亦然。

5 个答案:

答案 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);
}