Introduction
Sometimes we need to create an interface programmatically to computerize some processing like create a form dynamically. It’s the subject of this post. You can found above an example.
Let’s Go !
Objective
We begin with a simple XML file that contain a RelativeLayout and we add programmatically a button at the center.
We will finish with a result that equal to this :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:id="myRelativeLayout">
<Button android:id="myButton" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
How ?
Like that :
public class MaClasseIHM{
private RelativeLayout myRelativeLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
myRelativeLayout = (RelativeLayout)findViewById(R.id.myRelativeLayout);
// We create a button
Button myButton = new Button(this);
// The LayoutParams class permit to setting our element (the button)
// Here the height and length
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
// Here we center myButton
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
// And to finish, we add the button at our RelativeLayout with layoutParams
myRelativeLayout.addView(myButton, layoutParams);
}
}
You have now all elements to create a more complex UI.
To go further
You know now how to create a button. It’s not very usefull but it can become usefull if you need to create a lot (one hundred for example) through the loops !
If you need to create a more complex interface like a form, you can create a class that extends RelativeLayout. After it, you can create easyly a lot a of this new element by instanciate it.
If you have any problem, don’t forget the android documentation or comment this post