Android Activity Presenting UI with setContentView

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

Example

Activity class takes care of creating a window for you in which you can place your UI with setContentView.
There are three setContentView methods:

  • setContentView(int layoutResID) - Set the activity content from a layout resource.
  • setContentView(View view) - Set the activity content to an explicit view.
  • setContentView(View view, ViewGroup.LayoutParams params) - Set the activity content to an explicit view with provided params.

When setContentView is called, this view is placed directly into the activity's view hierarchy. It can itself be a complex view hierarchy.


Examples

Set content from resource file:

Add resource file (main.xml in this example) with view hierarchy:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello" /> 

</FrameLayout>

Set it as content in activity:

public final class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // The resource will be inflated, 
        // adding all top-level views to the activity.
        setContentView(R.layout.main);
    }
}

Set content to an explicit view:

public final class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Creating view with container
        final FrameLayout root = new FrameLayout(this);
        final TextView text = new TextView(this);
        text.setText("Hello");
        root.addView(text);

        // Set container as content view
        setContentView(root);
    }
}


Got any Android Question?