• Android 弹出Dialog的时候如何弹出软键盘(输入法)


    1、在弹出Dialog的时候弹出软键盘(这里是自定义的Dialog,普通的Dialog也是一样的)。

    1. private void showDecimalAlertDialog() {
    2. View view = LayoutInflater.from(this).inflate(R.layout.dialog_decimal_layout, null, false);
    3. EditText edtInput = (EditText) view.findViewById(R.id.edt_input);
    4. TextView tevCancel = (TextView) view.findViewById(R.id.tev_cancel);
    5. TextView tevConfirm = (TextView) view.findViewById(R.id.tev_confirm);
    6. @SuppressLint("RestrictedApi")
    7. AlertDialog alertDialog = new AlertDialog.Builder(this, R.style.dialog_decimal_style)
    8. .setView(view, 0, 0, 0, 0)
    9. .show();
    10. tevCancel.setOnClickListener(v -> {
    11. MineInputMethodManager.hideInputMethod(this);
    12. alertDialog.dismiss();
    13. });
    14. tevConfirm.setOnClickListener(v -> {
    15. });
    16. //弹出Dialog的时候弹出软键盘的关键代码
    17. alertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
    18. alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
    19. edtInput.setFocusable(true);
    20. edtInput.setFocusableInTouchMode(true);
    21. edtInput.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    22. @Override
    23. public void onFocusChange(View v, boolean hasFocus) {
    24. if (hasFocus) {
    25. MineInputMethodManager.showInputMethod(MineActivity.this, edtInput);
    26. } else {
    27. }
    28. }
    29. });
    30. edtInput.requestFocus();
    31. }

    2、添加自定义Dialog的layout。

    1. "1.0" encoding="utf-8"?>
    2. "http://schemas.android.com/apk/res/android"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. android:layout_width="@dimen/dp_300"
    5. android:layout_height="@dimen/dp_240"
    6. android:background="@drawable/corners_14_color_white"
    7. android:orientation="vertical">
    8. android:layout_width="@dimen/dp_300"
    9. android:layout_height="@dimen/dp_240"
    10. android:orientation="vertical"
    11. tools:ignore="UselessParent">
    12. android:layout_width="match_parent"
    13. android:layout_height="@dimen/dp_20" />
    14. android:layout_width="match_parent"
    15. android:layout_height="@dimen/dp_40"
    16. android:layout_gravity="center_horizontal"
    17. android:gravity="center"
    18. android:paddingStart="@dimen/dp_10"
    19. android:paddingEnd="@dimen/dp_10"
    20. android:text="Decimal"
    21. android:textColor="@color/blue"
    22. android:textSize="@dimen/sp_16" />
    23. android:layout_width="match_parent"
    24. android:layout_height="@dimen/dp_20" />
    25. android:id="@+id/edt_input"
    26. android:layout_width="@dimen/dp_240"
    27. android:layout_height="@dimen/dp_40"
    28. android:layout_gravity="center_horizontal"
    29. android:background="@drawable/corners_14_color_white_stroke_1_color_80000000"
    30. android:gravity="center_vertical"
    31. android:paddingStart="@dimen/dp_15"
    32. android:paddingEnd="@dimen/dp_15"
    33. android:textColor="@color/colorBlack333"
    34. android:textSize="@dimen/sp_16" />
    35. android:layout_width="match_parent"
    36. android:layout_height="@dimen/dp_20" />
    37. android:layout_width="@dimen/dp_200"
    38. android:layout_height="@dimen/dp_40"
    39. android:layout_gravity="center_horizontal">
    40. android:id="@+id/tev_cancel"
    41. android:layout_width="@dimen/dp_80"
    42. android:layout_height="@dimen/dp_40"
    43. android:layout_gravity="start"
    44. android:background="@drawable/corners_14_color_white_stroke_1_color_80000000"
    45. android:gravity="center"
    46. android:paddingStart="@dimen/dp_10"
    47. android:paddingEnd="@dimen/dp_10"
    48. android:text="cancel"
    49. android:textColor="@color/color_80000000"
    50. android:textSize="@dimen/sp_16" />
    51. android:id="@+id/tev_confirm"
    52. android:layout_width="@dimen/dp_80"
    53. android:layout_height="@dimen/dp_40"
    54. android:layout_gravity="end"
    55. android:background="@drawable/corners_14_color_white_stroke_1_color_blue"
    56. android:gravity="center"
    57. android:paddingStart="@dimen/dp_10"
    58. android:paddingEnd="@dimen/dp_10"
    59. android:text="confirm"
    60. android:textColor="@color/blue"
    61. android:textSize="@dimen/sp_16" />
    62. </FrameLayout>
    63. LinearLayout>

    3、在res文件夹的drawable文件夹新建几个xml文件,并把一下的xml代码复制进去。

    1. corners_14_color_white的drawable文件
    2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:shape="rectangle">
    4. <corners android:radius="@dimen/dp_14" />
    5. <solid android:color="@color/white" />
    6. shape>
    7. corners_14_color_white_stroke_1_color_80000000的drawable文件
    8. <shape xmlns:android="http://schemas.android.com/apk/res/android"
    9. android:shape="rectangle">
    10. <corners android:radius="@dimen/dp_14" />
    11. <solid android:color="@color/white" />
    12. <stroke
    13. android:width="@dimen/dp_1"
    14. android:color="@color/color_80000000" />
    15. shape>
    16. corners_14_color_white_stroke_1_color_blue的drawable文件
    17. <shape xmlns:android="http://schemas.android.com/apk/res/android"
    18. android:shape="rectangle">
    19. <corners android:radius="@dimen/dp_14" />
    20. <solid android:color="@color/white" />
    21. <stroke
    22. android:width="@dimen/dp_1"
    23. android:color="@color/blue" />
    24. shape>

    4、在res文件夹的values文件夹的values.xml文件下加入dialog style。

    1. <style name="dialog_decimal_style" parent="Theme.AppCompat.Dialog">
    2.        
    3.         <item name="android:colorBackground">@android:color/transparentitem>
    4.     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