【问题标题】:How do I print Kotlin Class properties to Logcat in Android Studio? [closed]如何在 kotlin 的 android studio 中将数据打印到 Logcat 中? [关闭]
【发布时间】:2021-05-27 01:17:18
【问题描述】:

我正在编写一个简单的程序来描绘我最喜欢的歌曲,这样当我运行代码时,歌曲的标题、艺术家姓名、发布日期等将被打印到 logcat。 为此,我将一个类命名为 FavoriteSong,并将歌曲的属性用作变量。

即我希望将艺术家姓名、歌曲标题、发布日期等打印到 logcat。

package com.example.song

import android.os.Build import android.os.Bundle import
android.util.Log import androidx.annotation.RequiresApi import
androidx.appcompat.app.AppCompatActivity import java.time.LocalDate
import java.time.Month

class MainActivity : AppCompatActivity() {
    @RequiresApi(Build.VERSION_CODES.O)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Favorite Song
        class FavoriteSong {
            val artistName: String = "Wale" 
            val songTitle: String = "My World" 
            val releaseDate = LocalDate.of(2020, Month.JANUARY, 1)
            val songDuration: Float = 3.50f 
            val genre: String = "Reggae" 
        }
        
        Log.d(FavoriteSong)
    }
}

【问题讨论】:

  • 全部大写的标题看起来像是在对我们大喊大叫。
  • 当您说“它不起作用”时,请尽量准确。你有错误(哪一个?)或者它根本没有按照你想要的方式运行?

标签: android-studio kotlin


【解决方案1】:

我不再精通 Android(更具体地说,我不记得 Log.d() 的签名),但我在这里看到了几个潜在的问题:

  • FavoriteSong 是一个类,而不是一个对象。你需要通过调用构造函数来创建它的一个实例:FavoriteSong()(这里不是括号)
  • 如果Log.d() 需要一个字符串,您可能需要在您的FavoriteSong 实例上调用.toString()。如果它接受Any,你应该没问题,因为它很可能会在后台调用toString()
  • 您当前对FavoriteSong 的定义不会覆盖AnytoString() 方法。您需要自己声明一个override fun toString(): String = ...,或者将这个类设为data class,以便它自动为您生成一个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多