まず、setContentView()
メソッドが何をするのかを理解してみましょう。基本的 setContentView()
に、UI を に配置しますActivity
。アクティビティの UI コンポーネントを作成するには、xml リソース (R.layout.main など) を使用するか、コードで UI コンポーネントのインスタンスを取得してアクティビティに動的に追加します。例えば
TextView tv = new TextView(this);
tv.setText("Hello, Android i am suvankar");
setContentView(tv);
あなたの場合、のインスタンスを作成し、TextView
tv
それにテキストを設定して、それをアクティビティに追加しました。ここでは、使用する必要はありませんsetContentView(R.layout.main)
。ただし、layouts フォルダーに次のような 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>
作成したアプリケーションの下部に、Hello Worldと書かれsetContentView(R.layout.main)
た黒い画面が表示されます。これは、ここでインスタンスを作成し、テキストを設定したが、 を呼び出してアクティビティに配置せず
、まったく異なるレイアウト リソースを追加したためです。を使用 し、最後に追加する と、最後に UI リソースを置き換えたため、"Hello, Android i am suvankar" の代わりにHello Worldが再び表示されます。ただし、xml リソースを追加して「setContentView(R.layout.main)」を呼び出すのを忘れた場合、コンパイラは、指定された xml リソースが見つからないというエラーを発行します。TextView
setContentView(tv)
setContentView(tv)
onCreate()
setContentView(R.layout.main)