• Android学习之键盘事件


    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属性:最多能输入的字符数

  • 相关阅读:
    windows下安装和设置Git客户端
    普通年金终值和现值计算(白话版)
    Git Http Server
    Python容器数据类型——collections
    模拟二进制实现减法
    自己写的线程池
    买书问题
    电梯调度算法
    Python文本常量和模板——string
    shell变量设置与显示
  • 原文地址:https://www.cnblogs.com/hh8888-log/p/9764394.html
Copyright © 2020-2023  润新知