【问题标题】:Declare ImageView in kotlin Android Studio [closed]在 kotlin Android Studio 中声明 ImageView [关闭]
【发布时间】:2020-11-05 15:30:34
【问题描述】:

我想要的是这样做(在 Java 中):

public class MainActivity exteds AppCompatActivity{
    ImageView logo;

    @override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        logo = findViewById(R.id.logo);
    }

将它带到 Kotlin 时出现错误:

请您告诉我要保留哪些选项以免出现错误?

TODO() 是什么类?

【问题讨论】:

  • 我已经尝试将 val 更改为 var
  • 这里的人会更喜欢它,你们中添加错误消息和代码,而不是图片链接。
  • 另外,您的 Java 代码无效

标签: java android kotlin imageview


【解决方案1】:

使用lateinit,这将允许您稍后初始化该属性。

lateinit var logo: ImageView

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    logo = findViewById(R.id.logo)
}

【讨论】:

  • 这是什么语言?它不是 Java 或 Kotlin
  • 更新了答案。
【解决方案2】:

您无法重新分配 val,因此我建议您将其设为 var。由于您还想稍后对其进行初始化,因此您需要声明一个lateinit var,即lateinit var logo: ImageView,或者您可以将其初始化为null,即var logo: ImageView? = null,然后您可以稍后重新分配为已初始化的logo = findViewById(R.id.logo)

【讨论】:

    【解决方案3】:

    如果你想在 kotlin 中使用这个 logo = findViewById(R.id.logo);,那么你不需要声明任何额外的变量,你可以简单地使用 logo.setOnClickListener { } 或任何类似的 kotlin 将直接从你的 xml 中导入它。(注意:- 这里 @ 987654324@ 是你的 imageView id)。

    尽管如此,如果您想声明任何变量并稍后对其进行初始化,那么您可以使用lateinit var logo: ImageView 或简单的可空变量,如var logo: ImageView? = null 并稍后对其进行初始化。 google 上有很多博客和 S.O Questions,您可以在其中找到有关 lateinitnullable 变量的更多信息。 Here 是您可以参考的 S.O 问题之一。

    【讨论】:

      【解决方案4】:

      你可以初始化为null,以后再使用

      var logo: ImageView? = null
          
          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
              setContentView(R.layout.simple_layout)
              logo = findViewById(R.id.imageView)
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-17
        • 2020-09-22
        • 1970-01-01
        • 2018-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-16
        相关资源
        最近更新 更多