技术资料
搜索
立即计价
您的位置:首页技术资料PCB设计Androidr的OnKeyListener键盘事件

Androidr的OnKeyListener键盘事件

来源: 时间: 2018/07/04 10:22:00 阅读: 138 标签: Androidr,OnKeyListener,键盘,事件

OnKeyListener键盘事件

可以通过键盘事件对EMAIL进行验证(这是网上最多的例子),也可以加入关键字非法文字的过滤。如果要监听键盘事件,必须知道按下和松开两种不同的操作,在OnKeyEvent可以找到按下松开的键。我们这个案例是输入银行卡号,用大字四个一组分隔回显出来,用于提醒是否输错!

  知识点:OnKey

  

 

一、设计界面

  1、打开“res/layout/activity_main.xml”文件。

  (1)从工具栏向activity拖出1个文本编辑框EditText2个文本标签TextView

  

  3、打开activity_main.xml文件。

  完整代码如下:

TextCopy to clipboardPrint

  1. <LinearLayout    

  2.     xmlns:android="http://schemas.android.com/apk/res/android"  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="match_parent"  

  5.     android:orientation="vertical">  

  6.   

  7.     <TextView  

  8.         android:id="@+id/prompt"  

  9.         android:layout_width="wrap_content"  

  10.         android:layout_height="wrap_content"  

  11.         android:text="银行账号:" />  

  12.   

  13.     <EditText  

  14.         android:id="@+id/accout"  

  15.         android:layout_width="wrap_content"  

  16.         android:layout_height="wrap_content"  

  17.         android:ems="10" />  

  18.   

  19.     <TextView  

  20.         android:id="@+id/info"  

  21.         android:layout_width="wrap_content"  

  22.         android:layout_height="wrap_content"  

  23.         android:textSize="25sp"  

  24.         android:text="" />  

  25.   

  26. </LinearLayout>  

    <LinearLayout

        xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical">

     

        <TextView

            android:id="@+id/prompt"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="银行账号:" />

     

        <EditText

            android:id="@+id/accout"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:ems="10" />

     

        <TextView

            android:id="@+id/info"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:textSize="25sp"

            android:text="" />

     

    </LinearLayout>


      3、界面如下

      

      

    二、OnKey键盘事件 

      1、打开“src/com.genwoxue.onkey/MainActivity.java”文件。

      然后输入以下代码:  

    TextCopy to clipboardPrint

  27. package com.genwoxue.onkey;   

  28.   

  29. import android.os.Bundle;   

  30. import android.app.Activity;   

  31. import android.view.KeyEvent;   

  32. import android.view.View;   

  33. import android.widget.TextView;   

  34. import android.widget.EditText;   

  35. import android.view.View.OnKeyListener;   

  36.   

  37.   

  38. public class MainActivity extends Activity {   

  39.     private EditText etAccout=null;   

  40.     private TextView tvInfo=null;   

  41.     @Override  

  42.     protected void onCreate(Bundle savedInstanceState) {   

  43.         super.onCreate(savedInstanceState);   

  44.         setContentView(R.layout.activity_main);   

  45.         tvInfo=(TextView)super.findViewById(R.id.info);   

  46.            

  47.         etAccout=(EditText)super.findViewById(R.id.accout);   

  48.         etAccout.setOnKeyListener(new EmailOnKeyListener());   

  49.     }   

  50.   

  51.     private class EmailOnKeyListener implements OnKeyListener{   

  52.         @Override  

  53.         public boolean onKey(View v, int keyCode, KeyEvent event) {   

  54.              //输入银行账号,用大字回显出来字符,4个字符用横线隔开   

  55.                switch (event.getAction()) {   

  56.                case KeyEvent.ACTION_UP:             //键盘松开   

  57.                    String sAccout=etAccout.getText().toString();   

  58.                    tvInfo.setText(Subs(sAccout));   

  59.                case KeyEvent.ACTION_DOWN:          //键盘按下   

  60.                    break;   

  61.                }   

  62.                    return false;   

  63.         }   

  64.   

  65.         private String Subs(String total){   

  66.              String news = "";     

  67.              for(int i=0;i<=total.length()/4;i++)   

  68.                  //分段后最后不加中间横线-   

  69.                  if(i*4+4<total.length())   

  70.                      news=news+total.substring(i*4,Math.min(i*4+4,total.length()))+"-";   

  71.                  else  

  72.                      news=news+total.substring(i*4,Math.min(i*4+4,total.length()));   

  73.              return news;   

  74.         }   

  75.     }   

  76.   

  77. }  

    package com.genwoxue.onkey;

     

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.KeyEvent;

    import android.view.View;

    import android.widget.TextView;

    import android.widget.EditText;

    import android.view.View.OnKeyListener;

     

     

    public class MainActivity extends Activity {

    private EditText etAccout=null;

    private TextView tvInfo=null;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    tvInfo=(TextView)super.findViewById(R.id.info);

     

    etAccout=(EditText)super.findViewById(R.id.accout);

    etAccout.setOnKeyListener(new EmailOnKeyListener());

    }

     

    private class EmailOnKeyListener implements OnKeyListener{

    @Override

    public boolean onKey(View v, int keyCode, KeyEvent event) {

     //输入银行账号,用大字回显出来字符,每4个字符用横线隔开

       switch (event.getAction()) {

       case KeyEvent.ACTION_UP:             //键盘松开

       String sAccout=etAccout.getText().toString();

       tvInfo.setText(Subs(sAccout));

       case KeyEvent.ACTION_DOWN:          //键盘按下

       break;

       }

           return false;

    }

     

    private String Subs(String total){

             String news = "";  

             for(int i=0;i<=total.length()/4;i++)

              //分段后最后不加中间横线-

              if(i*4+4<total.length())

               news=news+total.substring(i*4,Math.min(i*4+4,total.length()))+"-";

              else

               news=news+total.substring(i*4,Math.min(i*4+4,total.length()));

     return news;

    }

    }

     

    }

      在Android App中,键盘事件主要用于对键盘事件的监听,根据用户输入内容对键盘事件进行跟踪,键盘事件使用View.OnKeyListener接口进行事件处理,接口定义如下

      public static interface View.OnKeyListener{

        public boolean OnKeyView vint keyCodeKeyEvent event);

      }

      2、输入银行账号,自动回显字符。

      

         

     

版权声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如本站文章和转稿涉及版权等问题,请作者及时联系本站,我们会尽快处理。

网址:https://wwwjiepei.com/design/754.html

评论
登录后可评论,请注册
发布
加载更多评论
相关推荐