如何获取 SeekBar 的值并将其用于另一个 class 或方法

How To get value of SeekBar and use it on another class or method

我是 Kotlin 的新手,我想在我的应用程序上使用三个 Seekbar 进行 RGB 控制;
我想设置 seekBarManger 函数来管理我在 SeekBarManger class 上的搜索栏,并在其他 class 上使用 seekbar.progress 值 但我无法获得搜索栏的价值。
Toast 是 Show 但我想在其他方法和 class 中使用 seekbar.progrees 的值。 请帮我..!!!! 这是我的搜索栏 class :


class SeekBarManager()  {


}

fun seekBarManage(context: Context, seekBar: SeekBar) {



   seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {


       override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { }

       override fun onStartTrackingTouch(p0: SeekBar?) {}

       override fun onStopTrackingTouch(p0: SeekBar?) {


           val result = seekBar.progress

           Toast.makeText(context, "Progress is: $result%", Toast.LENGTH_SHORT).show()


       }


   })

这是我的 MainActivity :

open class MainActivity : AppCompatActivity()  {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val seekRed  = findViewById<SeekBar>(R.id.seekBar_red)
        val seekGreen = findViewById<SeekBar>(R.id.seekBar_green)
        val seekBlue = findViewById<SeekBar>(R.id.seekBar_blue)
        
        val seekEndRed = seekBarManage(this , seekRed)
        val seekEndGreen = seekBarManage(this , seekGreen)
        val seekEndBlue = seekBarManage(this , seekBlue)
     
       

Toast 是 Show 但我想在其他方法中使用 seekbar.progrees 和 class

的值

最简单的方法是在您的 Main class 中使用伴随对象,然后调用一个方法并传递您的搜索栏对象,如下所示:

open class MainActivity : AppCompatActivity() {

    companion object {
        fun getSeekBarProgress(context: Context, seekBar: SeekBar) {
            val result = seekBar.progress
            Toast.makeText(context, "Progress is: $result%", Toast.LENGTH_SHORT).show()

    }
}

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        val seekRed = findViewById<SeekBar>(R.id.seekBar_red)
        val seekGreen = findViewById<SeekBar>(R.id.seekBar_green)
        val seekBlue = findViewById<SeekBar>(R.id.seekBar_blue)

        val seekEndRed = seekBarManage(this, seekRed)
        val seekEndGreen = seekBarManage(this, seekGreen)
        val seekEndBlue = seekBarManage(this, seekBlue)
    }
}

和 SeekBarManager class :

class SeekBarManager() {


}

    fun seekBarManage(context: Context, seekBar: SeekBar) {


    seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {


        override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {}

        override fun onStartTrackingTouch(p0: SeekBar?) {}

        override fun onStopTrackingTouch(p0: SeekBar?) {

            MainActivity.getSeekBarProgress(context, seekBar)

        }


    })
    }