Android Textbox Example--EditText 文本编辑框



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;

	@Override
	protected 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() {

		@Override
		public 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;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值