提问人:RhetoricalRuvim 提问时间:8/7/2023 更新时间:8/7/2023 访问量:28
NumberPicker 在“value=1”时使用自定义文本显示错误值
NumberPicker showing wrong values with custom text when `value=1`
问:
我正在尝试让 NumberPicker 显示一组自定义选择,并从列表中的第二项开始 ()。选项包括:C、C、C♭#、D 和 D♭,选取器应为第二项显示“C”,但显示“C”,列表中有两个“C♭♭”项:value=1
使用触摸输入滚动 NumberPicker 可以“修复”此问题,但这并不是真正的修复,因为用户不希望必须与视图交互以使其显示正确的值。它应该从一开始就正确显示。这似乎只发生在“C”排在第一位,“C”排在第二位,我将值设置为(所以,“C♭”)。如果我将值设置为 0 或 2,或者如果“C#”在前面,或者如果 C 在前面,则不会发生该错误。1
这是我的布局 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<NumberPicker
android:id="@+id/npExample"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
这是我的 Kotlin:
package com.example.myapplication
import android.os.Bundle
import android.widget.NumberPicker
import androidx.activity.ComponentActivity
class MainActivity : ComponentActivity() {
var npExample : NumberPicker? = null
val exampleValues = arrayOf(
"C♭",
"C",
"C#",
"D♭",
"D"
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
npExample = findViewById(R.id.npExample)
npExample!!.minValue = 0
npExample!!.maxValue = exampleValues.size - 1
npExample!!.displayedValues = exampleValues
}
override fun onResume() {
super.onResume()
// Read the value we need from preferences here.
// For this example, we just hard-code the value into Kotlin to demo the behavior.
val exampleValue = 1
npExample?.value = exampleValue
}
}
有什么想法吗?谢谢。
答: 暂无答案
评论