(笔记)Android自定义数字键盘

这篇博客详细介绍了如何在Android开发中创建一个自定义数字键盘,实现了只有数字键、任意点插入删除、滑动改变光标位置等功能。同时,还提供了运行效果和关键代码示例。
摘要由CSDN通过智能技术生成

前言

最近Android开发中用到了自定义数字键盘,网上找的demo不能满足我的需求,比如删除和插入的时候只能在最后删除和插入,不能通过滑动键盘来移动光标。所以现在完成后把它总结写出来。

概述

主要实现以下功能:
(1)只有数字键,包括没有标点符号。
(2)可以在任意点插入和删除数字。
(3)可以通过手指左右滑动键盘来改变光标位置。
(4)输入框右边删除图标和按钮可随着内容有无变化。
(5)每三个数字空一格,输入框最多输入13个字符(包括空格)。

先上运行效果(请忽略UI -_-):keyboard.gif

步骤:
1、新建一个KeyboardView.java文件。用来自定义所需要的键盘。
首先初始化绑定布局文件。

private void init(Context context, AttributeSet attrs, int defStyleAttr) {
        LayoutInflater.from(context).inflate(R.layout.layout_key_board, this);
        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        rl_back=findViewById(R.id.rl_back);
        rl_back.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) { // 点击关闭键盘
                dismiss();
            }
        });
        initData();
        initView();
        initAnimation();
    }

填充数据(如果需要标点符号,则在i==9中填充即可)

private void initData() {
        keyboardWords = new ArrayList<>();
        for (int i = 0; i < 12; i++) {
            if (i < 9) {
                keyboardWords.add(String.valueOf(i + 1));
            } else if (i == 9) {
                keyboardWords.add("");
            } else if (i == 10) {
                keyboardWords.add("0");
            } else {
                keyboardWords.add("");
            }
        }
    }

设置适配器

 private void initView() {
        int spanCount = 12;
        recyclerView.setLayoutManager(new GridLayoutManager(getContext(),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值