ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SoftInputEditText

2021-09-11 11:33:36  阅读:100  来源: 互联网

标签:context SoftInputEditText Context import public view


SoftInputEditText

import android.content.Context;

import android.util.AttributeSet;

import android.view.View;

import android.view.inputmethod.InputMethodManager;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.appcompat.widget.AppCompatEditText;

import java.lang.ref.WeakReference;

import java.util.Timer;

import java.util.TimerTask;

/**

* 自动弹出软键盘的editText

*/

public class SoftInputEditText extends AppCompatEditText {

    private static  final long DELAY_TIME = 200;

    public SoftInputEditText(@NonNull Context context) {

        super(context);

        initEditText();

    }

    public SoftInputEditText(@NonNull Context context, @Nullable AttributeSet attrs) {

        super(context, attrs);

        initEditText();

    }

    public SoftInputEditText(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

        super(context, attrs, defStyleAttr);

        initEditText();

    }

    private void initEditText() {

        setFocusable(true);

        setFocusableInTouchMode(true);

        requestFocus();

    }

    @Override

    protected void onVisibilityChanged(View changedView, int visibility) {

        super.onVisibilityChanged(changedView, visibility);

        if(visibility == VISIBLE){

            Timer timer = new Timer();

            timer.schedule(new InputTimerTask(this), DELAY_TIME);

        }

    }

    private static class InputTimerTask extends TimerTask {

        WeakReference<AppCompatEditText> weakReference;

        public InputTimerTask(AppCompatEditText view) {

            this.weakReference = new WeakReference<>(view);

        }

        @Override

        public void run() {

            AppCompatEditText view = weakReference.get();

            if(view == null||view.getContext() == null){

                return;

            }

            InputMethodManager inputManager = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

            inputManager.showSoftInput(view, 0);

        }

    }

}

标签:context,SoftInputEditText,Context,import,public,view
来源: https://blog.csdn.net/xwdrhgr/article/details/120235148

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有