【问题标题】:Failed getStringExtra Kotlin mvvm失败的 getStringExtra Kotlin mvvm
【发布时间】:2018-08-27 17:48:13
【问题描述】:

我想从一个显示RecyclerView 的Activity 移动到另一个Activity(详细信息)。但是当我通过Intent添加数据传输时,总是无法在Activity细节中获取数据。

这是错误:

我的MainDetail:

private lateinit var viewModel: MainDetailModel
    var idAnime: String = "34134"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main_detail)
        idAnime = intent.getStringExtra("idAnime")
        println("idanime $idAnime")
        setupFragment()
        setupViewModel()
    }
}

ViewModel:

class MainViewModel(context: Application, private val appRepository: AppRepository, private val contexts: Context) : AndroidViewModel(context), MainItemClickAction {
    override fun onItemClicked(detailModel: DetailModel) {
        var intent = Intent(contexts, MainDetailActivity::class.java)
        intent.putExtra("idAnime",detailModel.mal_id )
        contexts.startActivity(intent)
    }
}

【问题讨论】:

  • 启动MainDetailActivity而不添加stringExtraidAnime时代码中有位置吗?

标签: android mvvm kotlin


【解决方案1】:

在这种情况下检查您的字段“detailModel.mal_id”mal_id 是否为字符串,因为您在详细信息活动中请求字符串。如果它是字符串,还要检查这个“mal_id”是否为空。看不到您提供的代码中的其他问题。

【讨论】:

    【解决方案2】:

    检查您的值idAnime,它是否存在,我认为最好在放入 listView 或其他视图之前检查所有值是否为空。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 2017-04-19
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2020-12-30
      相关资源
      最近更新 更多