1、在弹出Dialog的时候弹出软键盘(这里是自定义的Dialog,普通的Dialog也是一样的)。
- private void showDecimalAlertDialog() {
-
- View view = LayoutInflater.from(this).inflate(R.layout.dialog_decimal_layout, null, false);
- EditText edtInput = (EditText) view.findViewById(R.id.edt_input);
- TextView tevCancel = (TextView) view.findViewById(R.id.tev_cancel);
- TextView tevConfirm = (TextView) view.findViewById(R.id.tev_confirm);
-
- @SuppressLint("RestrictedApi")
- AlertDialog alertDialog = new AlertDialog.Builder(this, R.style.dialog_decimal_style)
- .setView(view, 0, 0, 0, 0)
- .show();
-
- tevCancel.setOnClickListener(v -> {
- MineInputMethodManager.hideInputMethod(this);
- alertDialog.dismiss();
- });
- tevConfirm.setOnClickListener(v -> {
-
- });
-
-
- //弹出Dialog的时候弹出软键盘的关键代码
- alertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
- alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- edtInput.setFocusable(true);
- edtInput.setFocusableInTouchMode(true);
- edtInput.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- if (hasFocus) {
- MineInputMethodManager.showInputMethod(MineActivity.this, edtInput);
- } else {
-
- }
- }
- });
- edtInput.requestFocus();
- }
2、添加自定义Dialog的layout。
- "1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="@dimen/dp_300"
- android:layout_height="@dimen/dp_240"
- android:background="@drawable/corners_14_color_white"
- android:orientation="vertical">
-
-
- android:layout_width="@dimen/dp_300"
- android:layout_height="@dimen/dp_240"
- android:orientation="vertical"
- tools:ignore="UselessParent">
-
-
- android:layout_width="match_parent"
- android:layout_height="@dimen/dp_20" />
-
-
- android:layout_width="match_parent"
- android:layout_height="@dimen/dp_40"
- android:layout_gravity="center_horizontal"
- android:gravity="center"
- android:paddingStart="@dimen/dp_10"
- android:paddingEnd="@dimen/dp_10"
- android:text="Decimal"
- android:textColor="@color/blue"
- android:textSize="@dimen/sp_16" />
-
-
- android:layout_width="match_parent"
- android:layout_height="@dimen/dp_20" />
-
-
- android:id="@+id/edt_input"
- android:layout_width="@dimen/dp_240"
- android:layout_height="@dimen/dp_40"
- android:layout_gravity="center_horizontal"
- android:background="@drawable/corners_14_color_white_stroke_1_color_80000000"
- android:gravity="center_vertical"
- android:paddingStart="@dimen/dp_15"
- android:paddingEnd="@dimen/dp_15"
- android:textColor="@color/colorBlack333"
- android:textSize="@dimen/sp_16" />
-
-
- android:layout_width="match_parent"
- android:layout_height="@dimen/dp_20" />
-
-
- android:layout_width="@dimen/dp_200"
- android:layout_height="@dimen/dp_40"
- android:layout_gravity="center_horizontal">
-
-
- android:id="@+id/tev_cancel"
- android:layout_width="@dimen/dp_80"
- android:layout_height="@dimen/dp_40"
- android:layout_gravity="start"
- android:background="@drawable/corners_14_color_white_stroke_1_color_80000000"
- android:gravity="center"
- android:paddingStart="@dimen/dp_10"
- android:paddingEnd="@dimen/dp_10"
- android:text="cancel"
- android:textColor="@color/color_80000000"
- android:textSize="@dimen/sp_16" />
-
-
- android:id="@+id/tev_confirm"
- android:layout_width="@dimen/dp_80"
- android:layout_height="@dimen/dp_40"
- android:layout_gravity="end"
- android:background="@drawable/corners_14_color_white_stroke_1_color_blue"
- android:gravity="center"
- android:paddingStart="@dimen/dp_10"
- android:paddingEnd="@dimen/dp_10"
- android:text="confirm"
- android:textColor="@color/blue"
- android:textSize="@dimen/sp_16" />
-
- </FrameLayout>
- LinearLayout>
-
3、在res文件夹的drawable文件夹新建几个xml文件,并把一下的xml代码复制进去。
- corners_14_color_white的drawable文件
-
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
-
- <corners android:radius="@dimen/dp_14" />
- <solid android:color="@color/white" />
- shape>
-
-
-
-
-
- corners_14_color_white_stroke_1_color_80000000的drawable文件
-
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
-
- <corners android:radius="@dimen/dp_14" />
- <solid android:color="@color/white" />
- <stroke
- android:width="@dimen/dp_1"
- android:color="@color/color_80000000" />
- shape>
-
-
-
-
- corners_14_color_white_stroke_1_color_blue的drawable文件
-
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
-
- <corners android:radius="@dimen/dp_14" />
- <solid android:color="@color/white" />
- <stroke
- android:width="@dimen/dp_1"
- android:color="@color/blue" />
- shape>
4、在res文件夹的values文件夹的values.xml文件下加入dialog style。
- <style name="dialog_decimal_style" parent="Theme.AppCompat.Dialog">
-
- <item name="android:colorBackground">@android:color/transparentitem>
- style>
如对此有疑问,请联系qq1164688204。
推荐Android开源项目
项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。
项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2
-
相关阅读:
BUUCTF 金三 1
公司为什么要使用OKR,目的是什么?
Go语言函数基础
Python学习笔记--字符集
2023NOIP A层联测25-游戏
2154. 将找到的值乘以 2
npm 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
计算机算法的设计与分析——排序和顺序统计
Vite5+Vue3整合Tailwindcss详细教程
Stream之flatMap用法
-
原文地址:https://blog.csdn.net/NakajimaFN/article/details/126061437