【发布时间】:2017-09-24 15:37:17
【问题描述】:
出于方便的原因(NumberEdit),我尝试使用 kotlin 将 EditText 子类化,但渲染的 View 丢失了大部分 EditText 属性。外观是 TextView 的外观,并且不能用鼠标聚焦(在模拟器中)。当我单击活动时,我可以编辑第一个 NumberEdit 小部件,并可以使用 tab 键循环到下一个。
我添加了两个模拟器屏幕截图来说明差异。
一个 EditText 看起来像这样
新的 NumberEdit 看起来像这样
扩展类如下所示:
import android.content.Context
import android.text.InputType
import android.util.AttributeSet
import android.widget.EditText
class EditNumber(context: Context, attributeSet: AttributeSet?, defStyleAttr: Int, defStyleRes: Int)
: EditText(context, attributeSet, defStyleAttr, defStyleRes) {
constructor(context: Context) : this(context, null, 0, 0)
constructor(context: Context, attributeSet: AttributeSet?) : this(context, attributeSet, 0, 0)
constructor(context: Context, attributeSet: AttributeSet?, defStyleAttr: Int)
: this(context, attributeSet, defStyleAttr, 0)
init {
inputType = InputType.TYPE_CLASS_NUMBER + InputType.TYPE_NUMBER_FLAG_DECIMAL
}
}
有人知道我做错了什么吗?我必须明确引用某些属性吗?
【问题讨论】:
标签: android android-layout android-edittext