小编Yoa*_*erg的帖子

kotlin如何使setOnClickListener接受函数作为参数

在kotlin中,我们可以setOnClickListener()像这样使用:

view.setOnClickListener { println("Hello") }
Run Code Online (Sandbox Code Playgroud)

但是如果我定义自己的界面,我只能传递这样的匿名对象:

obj.setMyListener(object: MyListener() {
    ...
})
Run Code Online (Sandbox Code Playgroud)

我只是想知道他们如何setOnClickListener()接受一个函数而不是一个匿名对象.

android kotlin

10
推荐指数
1
解决办法
4918
查看次数

在默认音乐播放器上播放歌曲 - 安卓

我的应用程序显示sd卡的歌曲列表.我希望能够在默认播放器上播放歌曲.我已经获得了关于这首歌的所有数据:id,title,album,artist,path ...

有没有办法启动默认播放器播放歌曲?

我尝试过的:

  1. Intent.CATEGORY_APP_MUSIC.我可以启动默认播放器,但无法设置歌曲. Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC)打开默认音乐应用.但是intent.setData(Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id))抛出异常没有找到意图.

  2. 使用已弃用MediaStore.INTENT_ACTION_MUSIC_PLAYER.找不到活动. Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER).setDataAndType(Uri.fromFile(songFile), "audio/*")

  3. INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH.启动搜索,但不是歌曲,说无法准备混合播放音乐.但是,它现在可以在Google上运行,因此它可能是关键. Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH).putExtra(SearchManager.QUERY, name)
  4. ACTION_VIEW.它有效,但它推出了一个紧凑版本的播放器,我想要完整的播放器.

compat视图

注意:我想启动外部播放器,而不是在我的应用中.

更新:看起来像Google Now硬编码的Play Music和Youtube支持.

android mediastore android-intent android-music-player

8
推荐指数
1
解决办法
8217
查看次数

在kotlin中,如何传回目的地期望List的MutableList

使用带有List作为值定义的hashMap:

     private var mMap: HashMap<String, List<DataStatus>>? = null
Run Code Online (Sandbox Code Playgroud)

有一个函数返回一个hashMap但具有MutableList的值

     fun getDataStatus(response: JSONObject?): HashMap<String, MutableList<DataStatus>> {

          return HashMap<String, MutableList<AccountStatusAlert>>()
     }
Run Code Online (Sandbox Code Playgroud)

当将结果传递给期望List的hashMap时,它得到了错误:

     mMap = getDataStatus(resp) //<== got error
Run Code Online (Sandbox Code Playgroud)

得到错误:

Error:(81, 35) Type mismatch: inferred type is HashMap<String, 
MutableList<DataStatus>> but HashMap<String, List<DataStatus>>? was expected
Run Code Online (Sandbox Code Playgroud)

inheritance android list kotlin

5
推荐指数
1
解决办法
3049
查看次数