让我们首先尝试了解setContentView()
方法的作用。基本上 setContentView()
将你的 UI 放在你的Activity
. 现在要为您的 Activity 创建一个 UI 组件,您可以使用 xml 资源(例如 R.layout.main),也可以在代码中获取 UI 组件的实例并将其动态添加到您的 Activity。例如
TextView tv = new TextView(this);
tv.setText("Hello, Android i am suvankar");
setContentView(tv);
在您的情况下,您创建了 的实例,TextView
tv
为其设置了一些文本并将其添加到您的活动中。在这里你不需要使用setContentView(R.layout.main)
. 但是,如果您的布局文件夹中有一个 xml 布局 (main.xml),如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World"
/>
</LinearLayout>
在你编写的应用程序的底部setContentView(R.layout.main)
,你应该会看到一个黑屏,上面写着Hello World 。这是因为您在这里创建了一个TextView
实例,为其设置了一些文本,但没有通过调用将其放置到您的活动中
setContentView(tv)
,而是您添加了一个完全不同的布局资源。如果您使用 setContentView(tv)
并在最后onCreate()
添加 setContentView(R.layout.main)
,您将再次看到Hello World而不是“Hello, Android i am suvankar”,因为最后您替换了 UI 资源。但是,如果您忘记添加您的 xml 资源并调用 'setContentView(R.layout.main)',编译器会因为找不到指定的 xml 资源而发出错误。