Android Tutorial - UI Button

Layout Button inside Activity

 

package com.commonsware.android.layouts;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class NowRedux extends Activity
  implements View.OnClickListener {
  Button btn;

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    
    setContentView(R.layout.main);

    btn=(Button)findViewById(R.id.button);
    btn.setOnClickListener(this);
    updateTime();
  }

  public void onClick(View view) {
    updateTime();
  }

  private void updateTime() {
    btn.setText(new Date().toString());
  }
}



//res\layout\main.xml
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button"
    android:text=""
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

Create Image Button

 
//package com.akjava.lib.android.ui;

import java.io.BufferedInputStream;
import java.io.InputStream;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;


 class WidgetUtil {
    
    public static ImageButton createImageButton(Context context,Bitmap bitmap){
      ImageButton bt=new ImageButton(context);
      
      bt.setImageBitmap(bitmap);
      return bt;
    }
    
}

Create Button

 
//package com.akjava.lib.android.ui;

import java.io.BufferedInputStream;
import java.io.InputStream;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;


 class WidgetUtil {

  public static Button createButton(Context context,String label){
    Button bt=new Button(context);
    bt.setText(label);
    return bt;
  }
}

extends Button

 
//package com.bitle.views;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
interface OnButtonActionListener {
  public void onButtonDown(View view);
  public void onButtonUp(View view);
}

public class MyButton extends Button {

  public MyButton(Context context) {
    super(context);
  }

  public MyButton(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
    
    case MotionEvent.ACTION_DOWN:
      buttonListener.onButtonDown((View)this);
      break;
    case MotionEvent.ACTION_UP:
      buttonListener.onButtonUp((View)this);
      break;
    }
    return super.onTouchEvent(event);
  }
  
  public void setOnButtonActionListener(OnButtonActionListener listener) {
    buttonListener = listener;
  }
  
  protected OnButtonActionListener buttonListener;
}
Adding a radio button programmatically
package com.example.android.apis.view;

import com.example.android.apis.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.RadioGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.LinearLayout;


public class RadioGroup1 extends Activity implements RadioGroup.OnCheckedChangeListener,
        View.OnClickListener {

    private TextView mChoice;
    private RadioGroup mRadioGroup;

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

        setContentView(R.layout.radio_group_1);
        mRadioGroup = (RadioGroup) findViewById(R.id.menu);

        // test adding a radio button programmatically
        RadioButton newRadioButton = new RadioButton(this);
        newRadioButton.setText(R.string.radio_group_snack);
        newRadioButton.setId(R.id.snack);
        LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
                RadioGroup.LayoutParams.WRAP_CONTENT,
                RadioGroup.LayoutParams.WRAP_CONTENT);
        mRadioGroup.addView(newRadioButton, 0, layoutParams);

    }

    public void onCheckedChanged(RadioGroup group, int checkedId) {
        String selection = getString(R.string.radio_group_selection);
        String none = getString(R.string.radio_group_none);
        mChoice.setText(selection +
                (checkedId == View.NO_ID ? none : checkedId));
    }

    public void onClick(View v) {
        mRadioGroup.clearCheck();
    }
}

//layout/radio_group_1.xml
<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:checkedButton="@+id/lunch"
        android:id="@+id/menu">
        <RadioButton
            android:text="@string/radio_group_1_breakfast"
            android:id="@+id/breakfast"
            />
        <RadioButton
            android:text="@string/radio_group_1_lunch"
            android:id="@id/lunch" />
        <RadioButton
            android:text="@string/radio_group_1_dinner"
            android:id="@+id/dinner" />
        <RadioButton
            android:text="@string/radio_group_1_all"
            android:id="@+id/all" />
        <TextView
            android:text="@string/radio_group_1_selection"
            android:id="@+id/choice" />
    </RadioGroup>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radio_group_1_clear"
        android:id="@+id/clear" />
</LinearLayout>
This demonstrates the use of the PopupMenu class. Clicking the button will inflate and show a popup menu from an XML resource.
package com.example.android.apis.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;

import com.example.android.apis.R;

/**
 * This demonstrates the use of the PopupMenu class. Clicking the button will inflate and
 * show a popup menu from an XML resource.
 */
public class PopupMenu1 extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.popup_menu_1);
    }

    public void onPopupButtonClick(View button) {
        PopupMenu popup = new PopupMenu(this, button);
        popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(),
                        Toast.LENGTH_SHORT).show();
                return true;
            }
        });

        popup.show();
    }
}

//layout/popup_menu_1.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 Google Inc.

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:onClick="onPopupButtonClick"
            android:text="popup_menu_button" />
</LinearLayout>


//menu/popup.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/search"
          android:icon="@android:drawable/ic_menu_search"
          android:title="popup_menu_search" />
    <item android:id="@+id/add"
          android:icon="@android:drawable/ic_menu_add"
          android:title="popup_menu_add" />
    <item android:id="@+id/edit"
          android:icon="@android:drawable/ic_menu_edit"
          android:title="popup_menu_edit">
        <menu>
            <item android:id="@+id/share"
                  android:icon="@android:drawable/ic_menu_share"
                  android:title="popup_menu_share" />
        </menu>
    </item>
</menu>

A list view that demonstrates the use of setEmptyView. This example alos uses a custom layout file that adds some extra buttons to the screen.

package com.example.android.apis.view;

import com.example.android.apis.R;

import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.AbsListView;

import java.util.ArrayList;


public class List8 extends ListActivity {

    PhotoAdapter mAdapter;

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

        // Use a custom layout file
        setContentView(R.layout.list_8);
        
        // Tell the list view which view to display when the list is empty
        getListView().setEmptyView(findViewById(R.id.empty));
        
        // Set up our adapter
        mAdapter = new PhotoAdapter(this);
        setListAdapter(mAdapter);
        
        // Wire up the clear button to remove all photos
        Button clear = (Button) findViewById(R.id.clear);
        clear.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                mAdapter.clearPhotos();
            } });
        
        // Wire up the add button to add a new photo
        Button add = (Button) findViewById(R.id.add);
        add.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                mAdapter.addPhotos();
            } });
    }

    public class PhotoAdapter extends BaseAdapter {

        private Integer[] mPhotoPool = {
                R.drawable.sample_thumb_0, R.drawable.sample_thumb_1, R.drawable.sample_thumb_2,
                R.drawable.sample_thumb_3, R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
                R.drawable.sample_thumb_6, R.drawable.sample_thumb_7};

        private ArrayList<Integer> mPhotos = new ArrayList<Integer>();
        
        public PhotoAdapter(Context c) {
            mContext = c;
        }

        public int getCount() {
            return mPhotos.size();
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            // Make an ImageView to show a photo
            ImageView i = new ImageView(mContext);

            i.setImageResource(mPhotos.get(position));
            i.setAdjustViewBounds(true);
            i.setLayoutParams(new AbsListView.LayoutParams(LayoutParams.WRAP_CONTENT,
                    LayoutParams.WRAP_CONTENT));
            // Give it a nice background
            i.setBackgroundResource(R.drawable.picture_frame);
            return i;
        }

        private Context mContext;

        public void clearPhotos() {
            mPhotos.clear();
            notifyDataSetChanged();
        }
        
        public void addPhotos() {
            int whichPhoto = (int)Math.round(Math.random() * (mPhotoPool.length - 1));
            int newPhoto = mPhotoPool[whichPhoto];
            mPhotos.add(newPhoto);
            notifyDataSetChanged();
        }

    }
}
//list_8.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent" 
    android:layout_height="match_parent">
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent" 
        android:layout_height="wrap_content">
        
        <Button android:id="@+id/add"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="@string/list_8_new_photo"/>
            
        <Button android:id="@+id/clear"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="@string/list_8_clear_photos"/>
            
    </LinearLayout>
    
    <!-- The frame layout is here since we will be showing either
    the empty view or the list view.  -->
    <FrameLayout
        android:layout_width="match_parent" 
        android:layout_height="0dip"
        android:layout_weight="1" >
        <!-- Here is the list. Since we are using a ListActivity, we
             have to call it "@android:id/list" so ListActivity will
             find it -->
        <ListView android:id="@android:id/list"
            android:layout_width="match_parent" 
            android:layout_height="match_parent"
            android:drawSelectorOnTop="false"/>
        
        <!-- Here is the view to show if the list is emtpy -->
        <TextView android:id="@+id/empty"
            android:layout_width="match_parent" 
            android:layout_height="match_parent"
            android:text="list_8_no_photos"/>
            
    </FrameLayout>
        
</LinearLayout>
A gallery of basic controls: Button, EditText, RadioButton, Checkbox, Spinner. This example uses the light theme.
package com.example.android.apis.view;

// Need the following import to get access to the app resources, since this
// class is in a sub-package.
import com.example.android.apis.R;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;


/**
 * A gallery of basic controls: Button, EditText, RadioButton, Checkbox,
 * Spinner. This example uses the light theme.
 */
public class Controls1 extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button disabledButton = (Button) findViewById(R.id.button_disabled);
        disabledButton.setEnabled(false);

        Spinner s1 = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, mStrings);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(adapter);
    }

    private static final String[] mStrings = {
        "Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"
    };
}


//main.xml

<?xml version="1.0" encoding="utf-8"?>


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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

       <LinearLayout
           android:orientation="horizontal"
           android:layout_width="match_parent"
           android:layout_height="wrap_content">

        <Button android:id="@+id/button"
            android:text="controls_1_save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <Button android:id="@+id/button_disabled"
            android:text="controls_1_save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

      </LinearLayout>

      <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText android:id="@+id/edit"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <EditText android:id="@+id/edit2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

      </LinearLayout>

        <CheckBox android:id="@+id/check1"
            android:paddingBottom="24sp"
          android:paddingTop="24sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="controls_1_checkbox_1" />

        <CheckBox android:id="@+id/check2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="controls_1_checkbox_2" />
    
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <RadioButton android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="controls_1_radiobutton_1" />
    
            <RadioButton android:id="@+id/radio2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="controls_1_radiobutton_2" />
    
        </RadioGroup>
    
        <CheckBox android:id="@+id/star"
            style="?android:attr/starStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="controls_1_star" />
                            
        <ToggleButton android:id="@+id/toggle1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
   
        <ToggleButton android:id="@+id/toggle2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
             
        <Spinner android:id="@+id/spinner1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawSelectorOnTop="true"
        />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dip"
            android:text="textColorPrimary"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:focusable="true"
        />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dip"
            android:text="textColorSecondary"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="?android:attr/textColorSecondary"
            android:focusable="true"
        />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dip"
            android:text="textColorTertiary"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="?android:attr/textColorTertiary"
            android:focusable="true"
        />

        <TextView
            style="?android:attr/listSeparatorTextViewStyle"
            android:text="listSeparatorTextViewStyle"
            android:layout_marginTop="5dip"
        />

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="400dip"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="(And all inside of a ScrollView!)"
        />
        
    </LinearLayout>

</ScrollView>

Button Gallery

package app.test;


import android.app.Activity;
import android.os.Bundle;

/**
 * A gallery of the different styles of buttons.
 */
public class Test extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}



//main.xml


<?xml version="1.0" encoding="utf-8"?>


<!-- Lots of buttons = need scrolling -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        
        <!-- Regular sized buttons -->
        <Button android:id="@+id/button_normal"
            android:text="buttons_1_normal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <!-- Small buttons -->
        <Button android:id="@+id/button_small"
            style="?android:attr/buttonStyleSmall"
            android:text="buttons_1_small"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ToggleButton android:id="@+id/button_toggle"
            android:text="buttons_1_toggle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
            
    </LinearLayout>
    
</ScrollView>

Using Button to control MediaPlayer

 


package app.test;

import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;

public class Test extends Activity implements
    OnCompletionListener, OnTouchListener, OnClickListener {

  MediaPlayer mediaPlayer;
  View theView;
  Button stopButton, startButton;

  int position = 0;

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

    stopButton = (Button) this.findViewById(R.id.StopButton);
    startButton = (Button) this.findViewById(R.id.StartButton);

    startButton.setOnClickListener(this);
    stopButton.setOnClickListener(this);

    theView = this.findViewById(R.id.theview);

    theView.setOnTouchListener(this);

    mediaPlayer = MediaPlayer.create(this, R.raw.a);//raw/a.mp3
    mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.start();
  }

  public void onCompletion(MediaPlayer mp) {
    mediaPlayer.start();
    mediaPlayer.seekTo(position);
  }

  public boolean onTouch(View v, MotionEvent me) {

    if (me.getAction() == MotionEvent.ACTION_MOVE) {
      if (mediaPlayer.isPlaying()) {
        position = (int) (me.getX() * mediaPlayer.getDuration() / theView
            .getWidth());
        Log.v("SEEK", "" + position);
        mediaPlayer.seekTo(position);
      }
    }

    return true;
  }

  public void onClick(View v) {
    if (v == stopButton) {
      mediaPlayer.pause();
    } else if (v == startButton) {
      mediaPlayer.start();
    }

  }
}


//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"
    >
<Button android:text="Start" android:id="@+id/StartButton" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Button android:text="Stop" android:id="@+id/StopButton" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<View android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/theview" />
</LinearLayout>

Set ToggleButton on/off text

 

package app.test;

import android.app.Activity;
import android.os.Bundle;

public class Test extends Activity {
      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
      }
}


//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:orientation="vertical" >
  
  <Button android:id="@+id/ccbtn1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Basic Button"
   />

  <ImageButton android:id="@+id/ccbtn2"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Image Button"
   android:src="@drawable/icon" 
   />

  <ToggleButton android:id="@+id/ccbtn3"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Toggle Button"
   android:textOff="Start"
   android:textOn="Stop"
   />
</LinearLayout>

Add key listener to add the new todo item when the middle D-pad button is pressed.

 
package app.test;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class Test extends Activity {

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    ListView myListView = (ListView)findViewById(R.id.myListView);
    final EditText myEditText = (EditText)findViewById(R.id.myEditText);
    final ArrayList<String> todoItems = new ArrayList<String>();
    final ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,todoItems);
    myListView.setAdapter(aa);

    myEditText.setOnKeyListener(new OnKeyListener() {
      public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN)
          if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
            todoItems.add(0, myEditText.getText().toString());
            myEditText.setText("");
            aa.notifyDataSetChanged();
            return true;
          }
        return false;
      }
    });
    
  } 
  
}

//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">
  <EditText
    android:id="@+id/myEditText"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="New To Do Item"
  />
  <ListView  
    android:id="@+id/myListView"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
  />
</LinearLayout>

Clear RadioButton selection

 


package app.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioGroup;

public class Test extends Activity implements View.OnClickListener {
    private RadioGroup mRadioGroup;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setTitle("RadioGroupActivity");
        mRadioGroup = (RadioGroup) findViewById(R.id.menu);
        Button clearButton = (Button) findViewById(R.id.clear);
        clearButton.setOnClickListener(this);
    }

 

    public void onClick(View v) {
        mRadioGroup.clearCheck();
    }
}
//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:checkedButton="@+id/lunch"
        android:id="@+id/menu">
        <RadioButton
            android:text="breakfast"
            android:id="@+id/breakfast"
            />
        <RadioButton
            android:text="lunch"
            android:id="@id/lunch" />
        <RadioButton
            android:text="dinner"
            android:id="@+id/dinner" />
        <RadioButton
            android:text="all"
            android:id="@+id/all" />
    </RadioGroup>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Clear"
        android:id="@+id/clear" />
</LinearLayout>

Using ImageButton

 


package app.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;

public class Test extends Activity {
  CheckBox plain_cb;
  CheckBox serif_cb;
  CheckBox italic_cb;
  CheckBox bold_cb;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTitle("ImageButtonActivity");
    setContentView(R.layout.main);
  }
}

//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="wrap_content">

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

<ImageButton android:id="@+id/imagebutton"
  android:src="@drawable/icon"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"/>
 
</LinearLayout>

Show or hide button

 

package app.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Test extends Activity {
  OnClickListener listener1 = null;
  OnClickListener listener2 = null;
  Button button1;
  Button button2;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    listener1 = new OnClickListener() {
      public void onClick(View v) {
        setTitle("button1");
        button1.setVisibility(View.INVISIBLE);
        button2.setVisibility(View.VISIBLE);
      }
    };
    listener2 = new OnClickListener() {
      public void onClick(View v) {
        setTitle("button2");
        button2.setVisibility(View.INVISIBLE);
        button1.setVisibility(View.VISIBLE);
      }
    };
    setContentView(R.layout.main);
    button1 = (Button) findViewById(R.id.button1);
    button1.setOnClickListener(listener1);
    button2 = (Button) findViewById(R.id.button2);
    button2.setOnClickListener(listener2);
  }
}


//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"> 
  <EditText android:id="@+id/speed" android:maxLines="1"
    android:layout_marginTop="2dip" android:layout_width="wrap_content"
    android:ems="25" android:layout_height="wrap_content"
    android:autoText="true" android:scrollHorizontally="true" />

  <Button android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="button1" />
  <Button android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text=" button2" />
</LinearLayout>

Set Button width and height

 

package app.test;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

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

    final Button button = (Button) findViewById(R.id.testButton);

    final Button changeButton = (Button) findViewById(R.id.layoutButton);
    changeButton.setOnClickListener(new Button.OnClickListener() {
      public void onClick(View v) {
        changeOption(button);
      }
    });
    final Button changeButton2 = (Button) findViewById(R.id.textColorButton);
    changeButton2.setOnClickListener(new Button.OnClickListener() {
      public void onClick(View v) {
        changeOption2(button);

      }
    });
  }

  public void changeOption(Button button) {
    if (button.getHeight() == 100) {
      button.setHeight(30);
    } else {
      button.setHeight(100);

    }
  }

  public void changeOption2(Button button) {
    button.setTextColor(Color.RED);
  }
}
//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"
    >
<Button android:id="@+id/testButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is the test Button"/>
<Button android:id="@+id/layoutButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Change Layout"/>
<Button android:id="@+id/textColorButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Change Text Color"/>
</LinearLayout>


Is ToggleButton selected

 
package app.test;

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 Test 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) {
        String str = "You have clicked the Open button";
        DisplayToast(str);
      }
    });
    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();
  }
}

//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="@string/hello"    
    />    
    
    <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/icon" />
        
    <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="horizontal" >                       
        <RadioButton android:id="@+id/rdb1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="Option 1" />            
        <RadioButton android:id="@+id/rdb2"
            android:layout_width="wrap_content" 
            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>

Set Button text in xml file

 



package app.test;

import android.app.Activity;
import android.os.Bundle;

public class Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

//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="@string/hello"
    />
    
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="This is my first Android Application!" />

<Button
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="And this is a clickable button!" />
    
</LinearLayout>
//strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">HelloWorld</string>
</resources>

ImageButton Demo

package com.commonsware.android.images;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.text.Html;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.EditText;
import android.widget.TextView;

public class ImagesDemo extends Activity {
  EditText name;
  TextView result;
  
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    
    name=(EditText)findViewById(R.id.name);
    result=(TextView)findViewById(R.id.result);
    
    ImageButton btn=(ImageButton)findViewById(R.id.format);
    
    btn.setOnClickListener(new Button.OnClickListener() {
      public void onClick(View v) {
        applyFormat();
      }
    });
  }
  
  private void applyFormat() {
    String format=getString(R.string.funky_format);
    String simpleResult=String.format(format,
                    TextUtils.htmlEncode(name.getText().toString()));
    result.setText(Html.fromHtml(simpleResult));
  }
}


//res\layout\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"
  >
  <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <ImageButton android:id="@+id/format"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"
      android:src="@drawable/icon"
      />
    <EditText android:id="@+id/name"
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      />
  </LinearLayout>
  <TextView android:id="@+id/result"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>



//res\values\strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="app_name">StringsDemo</string>
  <string name="funky_format">My name is &lt;b&gt;%1$s&lt;/b&gt;</string>
</resources>

Using switch statement to check the RadioButton selection

 
package app.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.RadioGroup;

public class Test extends Activity implements
    RadioGroup.OnCheckedChangeListener {
  RadioGroup orientation;
  RadioGroup gravity;

  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    orientation = (RadioGroup) findViewById(R.id.orientation);
    orientation.setOnCheckedChangeListener(this);
    gravity = (RadioGroup) findViewById(R.id.gravity);
    gravity.setOnCheckedChangeListener(this);
  }

  public void onCheckedChanged(RadioGroup group, int checkedId) {
    switch (checkedId) {
    case R.id.horizontal:
      orientation.setOrientation(LinearLayout.HORIZONTAL);
      break;

    case R.id.vertical:
      orientation.setOrientation(LinearLayout.VERTICAL);
      break;

    case R.id.left:
      gravity.setGravity(Gravity.LEFT);
      break;

    case R.id.center:
      gravity.setGravity(Gravity.CENTER_HORIZONTAL);
      break;

    case R.id.right:
      gravity.setGravity(Gravity.RIGHT);
      break;
    }
  }
}

//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"
  >
  <RadioGroup android:id="@+id/orientation"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5px">
    <RadioButton
      android:id="@+id/horizontal"
      android:text="horizontal" />
    <RadioButton
      android:id="@+id/vertical"
      android:text="vertical" />
  </RadioGroup>
  <RadioGroup android:id="@+id/gravity"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="5px">
    <RadioButton
      android:id="@+id/left"
      android:text="left" />
    <RadioButton
      android:id="@+id/center"
      android:text="center" />
    <RadioButton
      android:id="@+id/right"
      android:text="right" />
  </RadioGroup>
</LinearLayout>