我只是在Kotlin中创建了名为MyTextView和XML布局的自定义TextView。
var array = [{"month": 1, "days": 31},{"month": 2, "days": 2},{"month": 3, "days": 21}];
for(var i of array){if(i.month === 1){i.days = 12}}
console.log(array)
class MyTextView : TextView
{
constructor(context: Context) : super(context)
{
init()
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
{
init()
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
{
init()
}
private fun init()
{
this.paintFlags = this.paintFlags or Paint.UNDERLINE_TEXT_FLAG
}
}
但是当我尝试设置如下文本
<com.mypackage.MyTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mytextview"
/>
说,未解决的参考。该怎么办?
它适用于普通的TextView。
答案 0 :(得分:2)
请先导入布局文件
import kotlinx.android.synthetic.main.layout_name.mytextview
您需要将文本设置为textview的可编辑实例
请尝试一下Kotlin
mytextview.text = Editable.Factory.getInstance().newEditable("hi")
答案 1 :(得分:1)
可能是您没有在布局中引用自定义TextView的程序包名称,而活动充气工具也不知道在哪里可以找到该视图(您的自定义TextView)。确保您在布局中引用了程序包名称,如下所示:
<your.package.name.MyCustomTextView />
并确保设置了id
属性
<your.package.name.MyCustomTextView android:id="@+id/mytextview" />
答案 2 :(得分:0)
尝试此代码
val textView: TextView = findViewById(R.id.android_text) as TextView
textView.setOnClickListener {
textView.text = getString(R.string.name)
}
答案 3 :(得分:0)
尝试一下:
<group 1>
之后,您可以像java这样尝试:
var mytextview = findViewById(R.id.mytextview) as TextView
希望对您有帮助!