我正在使用ANKO
来构建简单的项目。当我尝试为EditText
设置ID时,我会收到以下错误。
确保传递给API的资源ID属于正确的类型;例如,调用
Resources.getColor(R.string.name)
是错误的。
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import org.jetbrains.anko.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
relativeLayout {
editText{
id = 1
}
}
}
}
答案 0 :(得分:1)
您应该将ID传递为R.id.some_name
你不能传递整数。
示例强>:
editText {
id = R.id.userNameEditText
hintResource = R.string.create_user_hint_username
textSize = 24f
}
希望有所帮助:)
答案 1 :(得分:1)
您应该为视图的ID传递正确的唯一资源ID,而不仅仅是任何int值。
首先在//...
"address" => array(
array(
"line1"=>"abc",
"city"=>"abc",
// ...
),
)
下创建一个文件ids.xml
,然后为res/values/
添加id
:
EditText
现在将其用作<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="edit_text" type="id"/>
</resources>
EditText
:
id
答案 2 :(得分:1)
您可以使用ID引用(R.id.something
)或从-16777215
到-1
的否定整数(并忽略警告)。
使用自API 17以来可用的View.generateViewId()
方法,也可以为您生成合适的负整数。源代码可用here。您必须自己记住生成的值。
在其他答案中介绍了生成R.id
。
我正在尝试做同样但却出错
这段视频是在一年多前发布的,而lint当时没有就Kotlin代码发出警告。