In Android, you can use “EditText” class to create an editable textbox to accept user input.

This tutorial show you how to create a textbox in XML file, and demonstrates the use of key listener to display message typed in the textbox.

P.S This project is developed in Eclipse, and tested with Android 2.3.3.

1. EditText

Open “res/layout/main.xml” file, add a “EditText” component.

File : res/layout/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" >

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

        <requestFocus />

    </EditText>

</LinearLayout>

2. EditText Listener

Attach a key listener inside your activity “onCreate()” method, to monitor following events :

  1. If “enter” is pressed , display a floating box with the message typed in the “EditText” box.
  2. If “Number 9” is pressed, display a floating box with message “Number 9 is pressed!”.

File : MyAndroidAppActivity.java


package com.mkyong.android;

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

public class MyAndroidAppActivity extends Activity {

 private EditText edittext;

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

	addKeyListener();
 }

 public void addKeyListener() {

	// get edittext component
	edittext = (EditText) findViewById(R.id.editText);

	// add a keylistener to keep track user input
	edittext.setOnKeyListener(new OnKeyListener() {
	public boolean onKey(View v, int keyCode, KeyEvent event) {

		// if keydown and "enter" is pressed
		if ((event.getAction() == KeyEvent.ACTION_DOWN)
			&& (keyCode == KeyEvent.KEYCODE_ENTER)) {

			// display a floating message
			Toast.makeText(MyAndroidAppActivity.this,
				edittext.getText(), Toast.LENGTH_LONG).show();
			return true;
					
		} else if ((event.getAction() == KeyEvent.ACTION_DOWN)
			&& (keyCode == KeyEvent.KEYCODE_9)) {

			// display a floating message
			Toast.makeText(MyAndroidAppActivity.this,
				"Number 9 is pressed!", Toast.LENGTH_LONG).show();
			return true;
		}

		return false;
	}
 });
}
}

3. Demo

Run the application.

1. Type something inside the textbox, and press on the “enter” key :

android textbox demo1

2. If key “Number 9” is pressed :

android textbox demo2

Download Source Code

Download it – Android-EditText-Example.zip (15 KB)

References

  1. Android EditText JavaDoc
  2. Android EditText example