Android UI How to - Use LinearLayout to layout common controls








The following code shows how to Use LinearLayout to layout common controls.

  • Button - Represents a push-button widget
  • ImageButton - Button view displays an image
  • EditText - Subclass TextView view to support editing its text content
  • CheckBox - Button that has two states: checked or unchecked
  • RadioGroup and RadioButton - The RadioButton has two states: checked or unchecked. A RadioGroup is used to group together one or more RadioButton views, allowing only one RadioButton to be checked within the RadioGroup.
  • ToggleButton - Displays checked/unchecked states using a light indicator




Example

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<Button android:id="@+id/btnSave"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="save" />

<Button android:id="@+id/btnOpen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Open" />

<ImageButton android:id="@+id/btnImg1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher" />

<EditText android:id="@+id/txtName"
    android:layout_width="fill_parent"
       android:layout_height="wrap_content" />

   <CheckBox android:id="@+id/chkAutosave"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="Autosave" />

   <CheckBox android:id="@+id/star"
       style="?android:attr/starStyle"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

   <RadioGroup android:id="@+id/rdbGp1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical" >

       <RadioButton android:id="@+id/rdb1"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Option 1" />

       <RadioButton android:id="@+id/rdb2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Option 2" />

   </RadioGroup>

   <ToggleButton android:id="@+id/toggle1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />

</LinearLayout>


Java code

//w  w w. j  av a  2s . c  om
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.Toast;
import android.widget.ToggleButton;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btnOpen = (Button) findViewById(R.id.btnOpen);
        btnOpen.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                DisplayToast("You have clicked the Open button");
            }
        });

        Button btnSave = (Button) findViewById(R.id.btnSave);
        btnSave.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) {
                DisplayToast("You have clicked the Save button");
            }
        });

        CheckBox checkBox = (CheckBox) findViewById(R.id.chkAutosave);
        checkBox.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) {
              if (((CheckBox)v).isChecked())
                  DisplayToast("CheckBox is checked");
              else
                  DisplayToast("CheckBox is unchecked");
          }
      });

      RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rdbGp1);
      radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
      {
          public void onCheckedChanged(RadioGroup group, int checkedId) {
              RadioButton rb1 = (RadioButton) findViewById(R.id.rdb1);
              if (rb1.isChecked()) {
                  DisplayToast("Option 1 checked!");
              } else {
                  DisplayToast("Option 2 checked!");
              }
          }
      });

      ToggleButton toggleButton =
              (ToggleButton) findViewById(R.id.toggle1);
      toggleButton.setOnClickListener(new View.OnClickListener()
      {
          public void onClick(View v) {
              if (((ToggleButton)v).isChecked())
                  DisplayToast("Toggle button is On");
              else
                  DisplayToast("Toggle button is Off");
          }
      });
  }

  private void DisplayToast(String msg)
  {
      Toast.makeText (getBaseContext(), msg,
              Toast.LENGTH_SHORT).show();
  }


}
null