带数组列表的 NumberPicker

我正在尝试在数字选择器中添加数据列表。我正在使用以下库:https ://github.com/ShawnLin013/NumberPicker作为数字选择器。

这是它在我的应用程序中的显示方式:

http://img4.mukewang.com/62e0fafb00010e5f00930034.jpg

如您所见,它的两侧带有 [ ] 并用逗号分隔,我该如何消除它?我想这就是问题所在。

我正在从 FIREBASE 数据库中获取信息。

我的代码:

IList = new ArrayList<>();

DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Information").child( uploads.getIdPost() )

        .child("CBS1");


reference.addValueEventListener(new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {

        IList.clear();

        for (DataSnapshot snapshot : dataSnapshot.getChildren()){

            IList.add(snapshot.getKey());


            String[] data = {String.valueOf( IList )};

            numberPicker.setMinValue(data.length);

            numberPicker.setMaxValue(data.length);

            numberPicker.setDisplayedValues(data);

            numberPicker.setValue(data.length);

            numberPicker.setWrapSelectorWheel(false);

        }

    }


RISEBY
浏览 146回答 2
2回答

天涯尽头无女友

这条线String[] data = {String.valueOf( IList )};String.valueOf( IList )将返回一个字符串,其值为[CB, CC]. 这就是您在 NumberPicker UI 上看到它的原因。解决方案:将字符串数组列表转换为字符串数组。IList.add(snapshot.getKey());// Convert string arraylist to string array.String[] data = new String[list.size()];data = list.toArray(data);// Set minValue is 1 instead of data.lengthnumberPicker.setMinValue(1);&nbsp;numberPicker.setMaxValue(data.length);numberPicker.setDisplayedValues(data);numberPicker.setValue(data.length);numberPicker.setWrapSelectorWheel(false);更新:我想这就是你的意思reference.addValueEventListener(new ValueEventListener() {&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onDataChange(DataSnapshot dataSnapshot) {&nbsp; &nbsp; &nbsp; &nbsp; IList.clear();&nbsp; &nbsp; &nbsp; &nbsp; for (DataSnapshot snapshot : dataSnapshot.getChildren()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IList.add(snapshot.getKey());&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; // Convert string arraylist to string array.&nbsp; &nbsp; &nbsp; &nbsp; String[] data = new String[IList.size()];&nbsp; &nbsp; &nbsp; &nbsp; data = IList.toArray(data);&nbsp; &nbsp; &nbsp; &nbsp; numberPicker.setMinValue(0);&nbsp; &nbsp; &nbsp; &nbsp; numberPicker.setMaxValue(data.length - 1);&nbsp; &nbsp; &nbsp; &nbsp; numberPicker.setDisplayedValues(data);&nbsp; &nbsp; &nbsp; &nbsp; numberPicker.setValue(0);&nbsp; &nbsp; &nbsp; &nbsp; numberPicker.setWrapSelectorWheel(false);&nbsp; &nbsp; }}

红颜莎娜

这是因为以下代码:String[]&nbsp;data&nbsp;=&nbsp;{String.valueOf(&nbsp;IList&nbsp;)};其中String.valueOf返回对象的字符串表示形式IList。您需要使用类似toArray的东西。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java