Swe*_*ain 1 typed-arrays kotlin
这是我的代码,该类用于扩充视图。我在这里使用类型化数组。有没有其他方法可以在不使用类型化数组的情况下编写此代码。
class CalculatorInputView(context: Context, attributeSet: AttributeSet) :
RelativeLayout(context, attributeSet) {
init {
LayoutInflater.from(context).inflate(R.layout.view_calculator_input,
this, true)
//attribute set
attributeSet.run {
val typedArray: TypedArray =
context.obtainStyledAttributes(
attributeSet,
R.styleable.CalculatorInputView
)
val textResource: String? =
typedArray.getString(R.styleable.CalculatorInputView_item_text)
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在不使用类型化数组的情况下编写此代码。
不,因为TypedArray该类负责包含 Android 资源的属性值。
但是,您可以使用Kotlin 中的Android KTX Core 扩展来缩短它:
context.withStyledAttributes(attributeSet, R.styleable.CalculatorInputView) {
val textResource = getString(R.styleable.CalculatorInputView_item_text)
}
Run Code Online (Sandbox Code Playgroud)
请记住,您需要将它们包含在您的build.gradle:
implementation "androidx.core:core-ktx:1.2.0"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |