android - 扩展 AppCompatEditText 时无法显示键盘

标签 android android-edittext android-appcompat

我自己制作了 DroidParts ClearableEditText 的修改版本,Android Studio 给了我以下错误:

This custom view should extend android.support.v7.widget.AppCompatEditText instead.

In order to support features such as tinting, the appcompat library will automatically load special appcompat replacements for the builtin widgets. However, this does not work for your own custom views.

Instead of extending the android.widget classes directly, you should instead extend one of the delegate classes in android.support.v7.widget.AppCompat.

但是,当我更改我的 ClearableEditText 类以扩展该类时,当我聚焦文本字段时键盘永远不会出现。

我知道我可以返回直接扩展​​ EditText,但我想按照推荐的方式进行。我怎样才能做到这一点并让键盘显示出来?

最佳答案

确保每个构造函数都使用 super 而不是 this() 。我在扩展 AppCompatEditText 时面临同样的问题

工作代码:

public RichEditText(Context context) {
    super(context);
}

public RichEditText(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public RichEditText(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

关于android - 扩展 AppCompatEditText 时无法显示键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46896630/

相关文章:

android - 从 Android 上的相机保存图像中的 strip

java - 我的编码显示这些错误,如何解决?

android - 如何像 git-archive 一样归档 AOSP 存储库?

java - 将秒值转换为小时分钟秒?

android - 如何使用 AppCompat 应用主题通过 "android:theme"属性设置chipBackgroundColor

android - 如何在android中为工具栏的appcompat Activity 设置导航主页按钮?

android - 如何使用 AppCompat 设置按钮的禁用颜色?

android - Android Material Design 中的 "Touch Target Size"到底是什么

android - 如何防止 EditText 在用户键入时自行调整大小?

android - ListView 中的 EditText 在 ListView 中滚动时丢失内容