首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列列的NumberPicker

列列的NumberPicker
EN

Stack Overflow用户
提问于 2019-03-08 22:48:34
回答 2查看 1.5K关注 0票数 1

我试图在数字选择器中添加一个数据列表。我使用的库是:https://github.com/ShawnLin013/NumberPicker作为数字选择器。

在我的应用程序中是这样的:

正如你所看到的,它的两边都是用逗号隔开的,我怎么能消除它呢?我想这就是问题所在。

我从消防队的数据库里得到信息。

我的代码:

代码语言:javascript
复制
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);
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2019-03-09 04:43:04

这条线

代码语言:javascript
复制
String[] data = {String.valueOf( IList )};

String.valueOf( IList )将返回值为[CB, CC]的字符串。这就是为什么您在NumberPicker UI上看到它的原因。

解决方案:将字符串数组转换为字符串数组。

代码语言:javascript
复制
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);

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

代码语言:javascript
复制
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);
    }
}
票数 3
EN

Stack Overflow用户

发布于 2019-03-09 04:42:44

这是因为以下代码:

代码语言:javascript
复制
String[] data = {String.valueOf( IList )};

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55072069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档