【问题标题】:Kotlin - Range seekbar libraryKotlin - 范围搜索栏库
【发布时间】:2019-07-30 23:02:42
【问题描述】:

我正在使用syedowaisali 的 Range Seekbar,但我无法让我的 TextView 根据拇指在栏上的位置进行更改。

我的 Activity 的 onCreate 中有以下内容:

    val rangeSeekbar = CrystalRangeSeekbar(this)
    rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
        tv_rent_time_range.text = maxValue.toString()
    }

tv_rent_time_rangemaxValue 一起加载,但当我移动右手拇指时它不会改变

在他的文档(Java)中,它看起来像这样:

rangeSeekbar.setOnRangeSeekbarChangeListener(new OnRangeSeekbarChangeListener() {
    @Override
    public void valueChanged(Number minValue, Number maxValue) {
        tvMin.setText(String.valueOf(minValue));
        tvMax.setText(String.valueOf(maxValue));
    }
});

我感觉我在 Kotlin 中设置了 setOnRangeSeekbarChangeListener 错误

【问题讨论】:

    标签: android kotlin android-widget rangeseekbar


    【解决方案1】:

    您正在创建新对象 (val rangeSeekbar = CrystalRangeSeekbar(this)),而不是使用膨胀布局中的视图。您可以使用:

    rangeSeekbar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
        // Do something there  
    }
    

    对于来自 Android SDK 的SeekBar,您可以从setOnSeekBarChangeListener 接收更新。

    对于来自 Android SDK 的CrystalRangeSeekbar,您可以从setOnRangeSeekbarChangeListener 接收更新。

    import android.os.Bundle
    import android.support.v7.app.AppCompatActivity
    import android.widget.SeekBar
    import kotlinx.android.synthetic.main.activity_main.*
    
    class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            setupUi()
        }
    
        private fun setupUi() {
            // Regular SeekBar (from Android SDK)
            seek_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
                override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
                    // Update text here
                }
    
                override fun onStartTrackingTouch(seekBar: SeekBar?) {
                }
    
                override fun onStopTrackingTouch(seekBar: SeekBar?) {
                }
            })
    
            crystal_range_seek_bar.setOnRangeSeekbarChangeListener { minValue, maxValue ->
                // Update text here
            }
        }
    }
    

    【讨论】:

    • 谢谢!我完全忘记了在我的布局中使用我的rangeeekbar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多