繁体   English   中英

使用for循环初始化字符串数组

[英]String array initialization using for loop

我有一个 listView,它显示 android 应用程序中最近的文件列表。 在这里,我有一个文件数组“fileList[]”及其长度 sizeOfFiles。 我将文件名分配给字符串数组“file_names”,然后将此字符串放入 ArrayAdapter 以在 listView 中使用。 有没有办法使用for循环为字符串赋值? 我尝试使用 for 循环,但我的应用程序停止工作。 所以我使用了多个 else if 语句。

String file_names[]= null;
        if (sizeOfFiles < 1) {
            file_names = new String[]{"No recent files.\nTouch New to add files."};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.file_list, file_names);
            listView.setAdapter(adapter);
        }


        else if (sizeOfFiles == 1) {
            file_names = new String[]{filesList[sizeOfFiles - 1].getName()};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.file_list, file_names);
            listView.setAdapter(adapter);
        }

        else if (sizeOfFiles == 2) {
            file_names = new String[]{filesList[sizeOfFiles - 1].getName(), filesList[sizeOfFiles - 2].getName()};
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.file_list, file_names);
            listView.setAdapter(adapter);
        }

据我了解,您正在寻找类似的东西:

        String file_names[]= new String[(int)Math.max(sizeOfFiles,1)];
        if (sizeOfFiles < 1) {
            file_names[0] = "No recent files.\nTouch New to add files.";
        } else  { 
            for(int i=sizeOfFiles-1;i>=0;i--){
                file_names[(sizeOfFiles-1)-i] = filesList[i].getName();
            }
        }  
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.file_list, file_names);
        listView.setAdapter(adapter);

我希望它有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM