带有Textview的Android setContentView

我是Android应用程序编程的新手,我正在阅读Google的教程: http : //developer.android.com/training/basics/firstapp/starting-activity.html 。

在此页面的“显示消息”部分下,它们创建TextView对象,并使用setContentViewtextView对象作为参数,以显示一些文本。 我想知道,如果我理解正确,而不是在代码中创建TextView对象,你可以用XML定义吗? 如果用XML定义它,那还需要你创建一个除main_activity.xml之外的新XML文件吗? 谢谢。

您可以在xml中声明所有布局和视图。 对于给定的示例,代码如下所示

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set your parent view setContentView(R.layout.main_layout); // Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); // Get the reference to the TextView and update it's content TextView textView = (TextView)findViewById(R.id.my_text_view); textView.setText(message); } 

你的main_layout.xml看起来像

   

您可以任意创建视图文件(XML文件)并指定视图的主要类型及其包含的子项。 您可以在main_activity.xml视图中创建TextView元素,并通过相对Id查找它。

如果您想要仅为TextView元素提供单独的视图,那么您可能需要另一个XML文件来定义该视图(如果您不想以编程方式指定它)。

在标准应用程序中,您可能会有一个预定义视图(XML文件),您将其设置为内容视图和其中的引用元素(以及可能添加新元素)。

它非常灵活,简而言之,回答您的问题不,您不需要生成新的XML视图文件,您只需将TextView添加到现有视图文件或在运行时指定它。