Android 自定义软键盘实现

module链接:https://download.csdn.net/download/meixi_android/10652565

compile project(':edlibrary')
, ':edlibrary'
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/root_view"android:orientation="vertical"><ScrollViewandroid:id="@+id/sv_main"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"><LinearLayoutandroid:id="@+id/all_ed"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><EditTextandroid:id="@+id/normal_ed"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="普通键盘" /><EditTextandroid:id="@+id/special_ed"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="特殊键盘"android:inputType="numberPassword"/></LinearLayout></ScrollView>
</LinearLayout>

 

private LinearLayout rootView;
private ScrollView scrollView;private EditText specialEd;
private KeyboardUtil keyboardUtil;
 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);rootView = (LinearLayout) findViewById(R.id.root_view);scrollView = (ScrollView) findViewById(R.id.sv_main);specialEd = (EditText) findViewById(R.id.special_ed);initMoveKeyBoard();}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 ) {if(keyboardUtil.isShow){keyboardUtil.hideSystemKeyBoard();keyboardUtil.hideAllKeyBoard();keyboardUtil.hideKeyboardLayout();}else {return super.onKeyDown(keyCode, event);}return false;} elsereturn super.onKeyDown(keyCode, event);}private void initMoveKeyBoard() {keyboardUtil = new KeyboardUtil(this, rootView, scrollView);
//        keyboardUtil.setOtherEdittext(normalEd);// monitor the KeyBarod statekeyboardUtil.setKeyBoardStateChangeListener(new KeyBoardStateListener());// monitor the finish or next KeykeyboardUtil.setInputOverListener(new inputOverListener());specialEd.setOnTouchListener(new KeyboardTouchListener(keyboardUtil, KeyboardUtil.INPUTTYPE_NUM, -1));}class KeyBoardStateListener implements KeyboardUtil.KeyBoardStateChangeListener {@Overridepublic void KeyBoardStateChange(int state, EditText editText) {
//            System.out.println("state" + state);
//            System.out.println("editText" + editText.getText().toString());}}class inputOverListener implements KeyboardUtil.InputFinishListener {@Overridepublic void inputHasOver(int onclickType, EditText editText) {
//            System.out.println("onclickType" + onclickType);
//            System.out.println("editText" + editText.getText().toString());}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(2657):vue3实现计算器

第一步 引入ref 第二步 第三步

微信小程序map作为子组件wx.createMapContext失效

我是将map封装成了子组件进行使用&#xff0c;发现wx.createMapContext无论如何都没有效果。最后&#xff0c;定睛一看&#xff0c;原来将map放到子组件中&#xff0c;再使用wx.createMapContext需要增加额外的参数this 具体使用方法如下&#xff1a; const mapCtx wx.create…

昨晚通宵把服务器格式化,重新配置环境。

1.备份代码和数据 备份数据库用到命令&#xff1a;mysqldump -u 用户名 -p 数据库名 > 导出文件名 2.然后登录阿里云后台停止服务器&#xff0c;再格式化磁盘。 3.配置软件源 Ubuntu中软件更新的源服务器地址存储再/etc/apt/soures.list 每一行的开头是deb和deb-src&#xf…

vscode设置折行字数

在vscode设置中查找Word Wrap。 将默认的80换成200 即可。

SpringCloud stream连接RabbitMQ收发信息

百度上查的大部分都是一些很简单的单消费者或者单生产者的例子&#xff0c;并且多是同一个服务器的配置&#xff0c;本文的例子为多服务器配置下的消费生产和消费者配置。 参考资料&#xff1a;https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.RELEASE/reference/ht…

前端学习(2659):组件间传参

第一步 第二步 第三步 子组件定义 第四步

Android 实现验证码效果图

自定义验证码图片view public class CheckView extends View {Context mContext;String mCheckCode null;Paint mTempPaint new Paint();private final int mPointNum;private final int mLineNum;private int mTextLength;private final float mTextSize; // private f…

JavaScript的基本语法

1.JavaScript中的表示符合保留关键字&#xff1a;JavaScript中定义的符号必须以字母&#xff0c;下划线_或美元符$开始&#xff0c;其他字符可以是字母数字&#xff0c;下划线或者美元符。如变量名&#xff0c;函数名等。但是&#xff0c;标识符不能是JavaScript中的保留关键字…

Android 视频播放器,VideoView播放视频

实现demo&#xff1a;https://download.csdn.net/download/meixi_android/13729352 获取视频时长 delyedTime videoView.getDuration();//单位毫秒&#xff08;ms&#xff09; 引入视频模块 implementation project(:dkplayer-java) implementation project(:dkplayer-ui)视…

工作174:数组转换为对象项目案例

/* getAction("/task",).then(res>{console.log(res)let List[]res.data.items.map((value,index)>{/!* console.log(value.task_recode)*!/List.push({...value.task_recode})})this.tableDataListconsole.log(this.tableData)})*/ 本次直接处理 转换为数…

AAPT2 error: check logs for details.

/1、全部替代你的项目build.gradle内容&#xff1a; // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories { // maven { // url https://maven.google.com // }mavenCe…

工作175:数据在表格横坐标动态显示

1数据格式 2对数据进行处理 created() {getAction("/task/arrange").then(res>{console.log(res)this.tableDatares.data.itemsthis.timeres.data.timeconsole.log(this.time)res.data.time.map((value,index)>{console.log(value)let arr {prop:,label:value.…

Android 生成二维码,条形码,二维码添加logo

zxing生成二维码 implementation com.google.zxing:core:3.3.1 implementation(name: zxing-1.0.1, ext: aar) implementation com.github.bumptech.glide:glide:4.9.0 annotationProcessor com.github.bumptech.glide:compiler:4.9.0 private Bitmap getCodeBitmap(String c…

java setDataSource 报红

开始学习spring security遇到一个问题&#xff0c;setDataSource老是报红 解决方案&#xff0c;在pom.xml中增加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>2…