java代码:
1 package com.example.keyboardtest; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.KeyEvent; 6 import android.view.View; 7 import android.view.View.OnKeyListener; 8 import android.widget.EditText; 9 import android.widget.TextView; 10 11 public class MainActivity extends Activity { 12 private TextView text; 13 private EditText edit; 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 //初始化值 19 text=(TextView)findViewById(R.id.view); 20 edit=(EditText)findViewById(R.id.edit); 21 //设置键盘监听: 22 edit.setOnKeyListener(new MyOnKeyListener()); 23 } 24 //键盘的监听事件使用View.OnKeyListener()接口进行处理 25 private class MyOnKeyListener implements OnKeyListener{ 26 @Override 27 public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 28 //键盘按下与松开操作: 29 switch (arg2.getAction()) { 30 case KeyEvent.ACTION_UP: //松开按键 31 String string=edit.getText().toString(); 32 text.setText(str(string)); 33 break; 34 case KeyEvent.ACTION_DOWN: //键盘按下 35 break; 36 default: 37 break; 38 } 39 return false; 40 } 41 //输入银行卡账号,用大字回显出来,每4个数字用“—”隔开 42 private String str(String total) { 43 String count=""; 44 for(int i=0;i<=total.length()/4;i++) { 45 //分段后最后不加“—” 46 if(i*4+4<total.length()) { 47 count=count+total.subSequence(i*4, Math.min(i*4+4,total.length()))+"-"; 48 }else { 49 count=count+total.subSequence(i*4, Math.min(i*4+4, total.length())); 50 } 51 } 52 return count; 53 } 54 } 55 }
activity_main.xml代码:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical"> 6 7 <TextView 8 android:id="@+id/theme" 9 android:layout_width="wrap_content" 10 android:layout_height="wrap_content" 11 android:text="手机号"/> 12 <EditText 13 android:id="@+id/edit" 14 android:layout_width="wrap_content" 15 android:layout_height="wrap_content" 16 android:ems="12" 17 android:maxLength="12"/> 18 <!-- android:ems属性表示将对应控件的宽度设为10个字符的宽度,设置该属性后,一行中最大只能显示该宽度的大小 19 注意:当layout_width="match_parent"时,该属性不会生效 20 android:maxLength属性表示最大可输入的字符数 --> 21 22 <TextView 23 android:id="@+id/view" 24 android:layout_width="wrap_content" 25 android:layout_height="wrap_content" 26 android:textSize="20sp" 27 android:text=""/> 28 29 </LinearLayout>
AndroidManifest.xml代码:
1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.keyboardtest" 4 android:versionCode="1" 5 android:versionName="1.0" > 6 7 <uses-sdk 8 android:minSdkVersion="18" 9 android:targetSdkVersion="22" /> 10 11 <application 12 android:allowBackup="true" 13 android:icon="@drawable/ic_launcher" 14 android:label="@string/app_name" 15 android:theme="@style/AppTheme" > 16 <activity 17 android:name=".MainActivity" 18 android:label="@string/app_name" > 19 <intent-filter> 20 <action android:name="android.intent.action.MAIN" /> 21 <category android:name="android.intent.category.LAUNCHER" /> 22 </intent-filter> 23 </activity> 24 </application> 25 26 </manifest>
说明:
1、Android中对键盘的监听使用View.OnKeyListener()接口进行处理
2、Android中对按钮的监听使用OnClickListener()接口进行处理
3、android:ems属性:一行允许输入的最大的字符数
android:maxLength属性:最多能输入的字符数