每日记录2022.02.27(七)

今天上课,老师讲了软件工程的基本概念,对于一个软件的开发,并不只是客户需要什么就做什么,其中会遇到很多问题,在这些问题需要靠我们自己去考虑。其中需要我们去改变的思路就是,当一个项目出现BUG时,并不意味着他就是不对的,并没有什么完美的编程BUG是不可能避免的。

课上编写了单词接龙链的代码书写,思考如何进行代码编写。

今天学习了软键盘的编写。

<?xml version="1.0" encoding="utf-8"?>

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

    android:keyHeight="50dp"

    android:keyWidth="25%p"

    android:horizontalGap="1px"

    android:verticalGap="1px"

    >

    <Row>

        <Key android:codes="49" android:keyLabel="1"></Key>

        <Key android:codes="50" android:keyLabel="2"></Key>

        <Key android:codes="51" android:keyLabel="3"></Key>

        <Key android:codes="-5" android:keyLabel="删除"></Key>

    </Row>

    <Row>

        <Key android:codes="52" android:keyLabel="4"></Key>

        <Key android:codes="53" android:keyLabel="5"></Key>

        <Key android:codes="54" android:keyLabel="6"></Key>

        <Key android:codes="-4" android:keyHeight="150dp" android:keyLabel="确定"></Key>

    </Row>

    <Row>

        <Key android:codes="55" android:keyLabel="7"></Key>

        <Key android:codes="56" android:keyLabel="8"></Key>

        <Key android:codes="57" android:keyLabel="9"></Key></Row>

    <Row>

        <Key android:codes="-3" android:keyLabel="清零"></Key>

        <Key android:codes="48" android:keyLabel="0"></Key>

        <Key android:codes="46" android:keyLabel="."></Key></Row>

</Keyboard>

下面是java文件;

 

package com.example.xx.util;

 

import android.inputmethodservice.Keyboard;

import android.inputmethodservice.KeyboardView;

import android.text.Editable;

import android.text.InputType;

import android.view.View;

import android.widget.EditText;

 

import com.example.xx.R;

 

public class KeyBordUtil {

 

    private final Keyboard keyboard;

    private KeyboardView keyboardView;

    private EditText editText;

    private int visibility;

    private int visibility1;

 

    public interface onEnsureListener{

        public void onEnsure();

    }

    onEnsureListener onEnsureListener;

    public void setOnEnsureListener(onEnsureListener onEnsureListener){

        this.onEnsureListener=onEnsureListener;

    }

    public KeyBordUtil(KeyboardView keyboardView, EditText editText) {

        this.keyboardView = keyboardView;

        this.editText = editText;

        this.editText.setInputType(InputType.TYPE_NULL);//取消系统键盘

        keyboard = new Keyboard(this.editText.getContext(), R.xml.key);

        this.keyboardView.setKeyboard(keyboard);//键盘样式

        this.keyboardView.setEnabled(true);

        this.keyboardView.setPreviewEnabled(false);

        this.keyboardView.setOnKeyboardActionListener(listener);//键盘监听

    }

 

    KeyboardView.OnKeyboardActionListener listener=new KeyboardView.OnKeyboardActionListener(){

        public void onPress(int primaryCode){

 

        }

 

        @Override

        public void onRelease(int i) {

 

        }

 

        @Override

        public void onKey(int i, int[] ints) {

                Editable editable=editText.getText();

            int start = editText.getSelectionStart();

            switch (i){

                case Keyboard.KEYCODE_DELETE://删除

                    if(editable!=null&&editable.length()>0){

                        if(start> 0){

                         editable.delete(start-1,start);

                        }

                    }

                    break;

                case Keyboard.KEYCODE_CANCEL://清零

                    editable.clear();

                    break;

                case Keyboard.KEYCODE_DONE://完场

                    onEnsureListener.onEnsure();//接口回调的方法,当

                    break;

                default://其他数字

                    editable.insert(start,Character.toString((char)i));

                    break;

            }

        }

 

        @Override

        public void onText(CharSequence charSequence) {

 

        }

 

        @Override

        public void swipeLeft() {

 

        }

 

        @Override

        public void swipeRight() {

 

        }

 

        @Override

        public void swipeDown() {

 

        }

 

        @Override

        public void swipeUp() {

 

        }

    };

    //显示键盘灯的方法

    public void showKeyboard(){

        visibility = keyboardView.getVisibility();

        if (visibility == View.INVISIBLE||visibility==View.GONE) {

            keyboardView.setVisibility(View.VISIBLE);

        }

    }

    //隐藏键盘

    public void hideKeyboard(){

        visibility1 = keyboardView.getVisibility();

        if (visibility1== View.VISIBLE||visibility1==View.INVISIBLE) {

            keyboardView.setVisibility(View.GONE);

        }

    }

}

posted @   傲世小苦瓜  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示