adsl9002 2022-08-27 12:54 采纳率: 46.2%
浏览 45
已结题

如何添加播放点击事件

正在学第一行代码第三版,在recyclerView中,我想增加一个播放MP3的点击事件

Fruit.kt:

package android.example.recyclerviewtest
class Fruit(val name: String, val imageId: Int, val videoId: Int)

MainActivity.kt :
initFruits.add中的R.raw.**是先随意用的MP3文件

package android.example.recyclerviewtest
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {

    private val fruitList = ArrayList<Fruit>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initFruits()
        val layoutManager = LinearLayoutManager(this)
        val recyclerView:RecyclerView = findViewById(R.id.recyclerView)
        recyclerView.layoutManager = layoutManager
        val adapter = FruitAdapter(fruitList)
        recyclerView.adapter = adapter
    }

    private fun initFruits() {
        repeat(2) {
            fruitList.add(Fruit("apple", R.drawable.apple_pic, R.raw.color_black))
            fruitList.add(Fruit("banana", R.drawable.banana_pic, R.raw.color_brown))
            fruitList.add(Fruit("orange", R.drawable.orange_pic, R.raw.color_dusty_yellow))
            fruitList.add(Fruit("watermelon", R.drawable.watermelon_pic, R.raw.color_gray))
            fruitList.add(Fruit("pear", R.drawable.pear_pic, R.raw.color_green))
            fruitList.add(Fruit("grape", R.drawable.grape_pic, R.raw.color_mustard_yellow))
            fruitList.add(Fruit("pineapple", R.drawable.pineapple_pic, R.raw.color_red))
            fruitList.add(Fruit("strawberry", R.drawable.strawberry_pic, R.raw.color_white))
            fruitList.add(Fruit("cherry", R.drawable.cherry_pic, R.raw.color_white))
            fruitList.add(Fruit("mango", R.drawable.mango_pic, R.raw.family_father))
        }
    }
}

FruitAdapter.kt:

package android.example.recyclerviewtest
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import android.widget.VideoView
import androidx.recyclerview.widget.RecyclerView

class FruitAdapter(private val fruitList: List<Fruit>) :
    RecyclerView.Adapter<FruitAdapter.ViewHolder>() {

       inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val fruitImage: ImageView = view.findViewById(R.id.fruitImage)
        val fruitName: TextView = view.findViewById(R.id.fruitName)
        val fruitButton:Button = view.findViewById(R.id.fruitMedia)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.fruit_item, parent, false)
        val viewHold = ViewHolder(view)

        viewHold.fruitImage.setOnClickListener {
            val position = viewHold.bindingAdapterPosition
            val fruit = fruitList[position]
            Toast.makeText(parent.context, "你点击了${fruit.imageId}", Toast.LENGTH_SHORT).show()
        }

        viewHold.fruitName.setOnClickListener {
            val position = viewHold.bindingAdapterPosition
            val fruit = fruitList[position]
            Toast.makeText(parent.context, "你点击了${fruit.name}", Toast.LENGTH_SHORT).show()
        }
        
        viewHold.fruitButton.setOnClickListener {
            val position = viewHold.bindingAdapterPosition
            val fruit = fruitList[position]
            val mediaPlayer:MediaPlayer = MediaPlayer.create(parent.context, fruit.videoId)
            mediaPlayer.start()
        }

        return viewHold
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val fruit = fruitList[position]
        holder.fruitImage.setImageResource(fruit.imageId)
        holder.fruitName.text = fruit.name
        holder.fruitVideo.setRawInputType(fruit.videoId)
    }

    override fun getItemCount() = fruitList.size

}
运行结果及报错内容

尝试了好久,还是把点击播放MP3 事件弄好了,现在还差一个功能,在FruitAdapter
里,给fruitName这个TextView添加背景颜色,这个没什么头绪了。

img

  • 写回答

1条回答 默认 最新

  • JokeProgress 2022-08-28 14:27
    关注

    不就是给控件加个背景色?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月28日
  • 修改了问题 8月28日
  • 修改了问题 8月28日
  • 修改了问题 8月27日
  • 展开全部

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)