Android学习之键盘事件

时间:2021-11-13 06:19:44

java代码:

 package com.example.keyboardtest;

 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.TextView; public class MainActivity extends Activity {
private TextView text;
private EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化值
text=(TextView)findViewById(R.id.view);
edit=(EditText)findViewById(R.id.edit);
//设置键盘监听:
edit.setOnKeyListener(new MyOnKeyListener());
}
//键盘的监听事件使用View.OnKeyListener()接口进行处理
private class MyOnKeyListener implements OnKeyListener{
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
//键盘按下与松开操作:
switch (arg2.getAction()) {
case KeyEvent.ACTION_UP: //松开按键
String string=edit.getText().toString();
text.setText(str(string));
break;
case KeyEvent.ACTION_DOWN: //键盘按下
break;
default:
break;
}
return false;
}
//输入银行卡账号,用大字回显出来,每4个数字用“—”隔开
private String str(String total) {
String count="";
for(int i=0;i<=total.length()/4;i++) {
//分段后最后不加“—”
if(i*4+4<total.length()) {
count=count+total.subSequence(i*4, Math.min(i*4+4,total.length()))+"-";
}else {
count=count+total.subSequence(i*4, Math.min(i*4+4, total.length()));
}
}
return count;
}
}
}

activity_main.xml代码:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <TextView
android:id="@+id/theme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="手机号"/>
<EditText
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="12"
android:maxLength="12"/>
<!-- android:ems属性表示将对应控件的宽度设为10个字符的宽度,设置该属性后,一行中最大只能显示该宽度的大小
注意:当layout_width="match_parent"时,该属性不会生效
android:maxLength属性表示最大可输入的字符数 --> <TextView
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text=""/> </LinearLayout>

AndroidManifest.xml代码:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.keyboardtest"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="22" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

说明:

1、Android中对键盘的监听使用View.OnKeyListener()接口进行处理

2、Android中对按钮的监听使用OnClickListener()接口进行处理

3、android:ems属性:一行允许输入的最大的字符数

   android:maxLength属性:最多能输入的字符数