为了账号安全,请及时绑定邮箱和手机立即绑定

带数组列表的 NumberPicker

带数组列表的 NumberPicker

RISEBY 2022-07-27 16:44:03
我正在尝试在数字选择器中添加数据列表。我正在使用以下库:https ://github.com/ShawnLin013/NumberPicker作为数字选择器。这是它在我的应用程序中的显示方式:如您所见,它的两侧带有 [ ] 并用逗号分隔,我该如何消除它?我想这就是问题所在。我正在从 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);        }    }
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

这条线


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.length

numberPicker.setMinValue(1); 

numberPicker.setMaxValue(data.length);

numberPicker.setDisplayedValues(data);

numberPicker.setValue(data.length);

numberPicker.setWrapSelectorWheel(false);

更新:我想这就是你的意思


reference.addValueEventListener(new ValueEventListener() {

    @Override

    public void onDataChange(DataSnapshot dataSnapshot) {

        IList.clear();


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

            IList.add(snapshot.getKey());

        }


        // Convert string arraylist to string array.

        String[] data = new String[IList.size()];

        data = IList.toArray(data);


        numberPicker.setMinValue(0);

        numberPicker.setMaxValue(data.length - 1);

        numberPicker.setDisplayedValues(data);

        numberPicker.setValue(0);

        numberPicker.setWrapSelectorWheel(false);

    }

}


查看完整回答
反对 回复 2022-07-27
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

这是因为以下代码:

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

其中String.valueOf返回对象的字符串表示形式IList

您需要使用类似toArray的东西。


查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信