Android Textbox Example--EditText 文本编辑框

来源:互联网 发布:主题医院 mac 编辑:程序博客网 时间:2024/05/16 07:33


In Android, you can use “EditText” class to create an editable textbox to accept user input.
在 Android 中使用 “EditText” 类,就可以创建一个文本编辑框,用来接收用户的输入信息。


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.
本教程将展现,如何在 XML 文件中创建一个文本输入框(textbox),并且为文本输入框添加 键盘监听事件(key listener)




一. EditText 文本输入框
打开 “res/layout/activity_main.xml” 文件, 添加 a “EditText” 组件(component).

File : res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"    tools:context=".MainActivity" >    <EditText        android:id="@+id/editText"        android:layout_width="match_parent"        android:layout_height="wrap_content" >         <requestFocus />     </EditText>    </LinearLayout>



二. EditText Listener(事件监听)

Attach a key listener inside your activity “onCreate()” method, to monitor following events :
在onCreate()方法为文本输入框绑定事件监听,监听以下事件:


If “enter” is pressed , display a floating box with the message typed in the “EditText” box.
如果 Enter 键被按下,则展现文本框中的内容


If “Number 9″ is pressed, display a floating box with message “Number 9 is pressed!”.
如果数字9被按下,则展现“数字9被按下”


File : MainActivity.java

package com.jiangge.edittextkeylistenserdemo;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 MainActivity extends Activity {private EditText edittext;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);addKeyListener();}public void addKeyListener() {edittext = (EditText) findViewById(R.id.editText);edittext.setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {// 如果鍵被按下,并且按下的是“Enter”键if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {// 展现信息Toast.makeText(MainActivity.this, edittext.getText(), Toast.LENGTH_LONG).show();return true;} else if ( (event.getAction() == KeyEvent.ACTION_DOWN)  && (keyCode == KeyEvent.KEYCODE_9)) {// 展现信息Toast.makeText(MainActivity.this, "9被按下了", Toast.LENGTH_LONG).show();return true;}return false;}});}}



三、运行:




四、扩展阅读:

1、EditText xml 属性:

android:numeric="integer"(仅允许输入整数数字),android:phoneNumber="true"(仅允许输入电话号码),android:autoLink="all"(自动将文字转成超连结)。 

例如要限制 EditText 中只允许输入数字的话,我们可以在 XML 描述文档中,透过将 EditText 的参数“android:numeric” 指定为 “true”,以限制使用者只能在 EditText 文字栏位中输入数字。


2、textview.setText(),  setText()的参数必须为字符串类型,否则会报错

public class CalcResult extends Activity{TextView textview;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_result);textview = (TextView) findViewById(R.id.showResult);Intent intent = getIntent();String firstNum = intent.getStringExtra("first_num");String seconNum = intent.getStringExtra("second_num");Log.v("first", firstNum);Log.v("second", seconNum);int numOne = Integer.parseInt(firstNum);int numTwo = Integer.parseInt(seconNum);int result = numOne * numTwo;textview.setText("result" + "=" + result + "");//textview.setText( 100); //setText的参数必须为字符串类型,否则会报错}}
知识点:

1)setText的参数必须为字符串类型,否则会报错

2)Log.v("first", firstNum); //log日志 

3)int numOne = Integer.parseInt(firstNum); //string convert to integer

====================================================================

参考文献:

1、官网文档

2、http://www.mkyong.com/android/android-textbox-example/comment-page-1/#comment-136363

原创粉丝点击