-1

我需要有关我在 Appcelerator Titanium for Android 中使用的应用程序的帮助。

我得到了下面的代码,它允许我向模拟器显示附加 SD 的第一(根)级别(图像示例如下):

    /*
 *
 * Dynamic data, 
 * taken from the SD card
 * 
 */

//Get the SD card reference
var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory);

//Get the directory listing
var directoryStr = dir.getParent().getDirectoryListing();

//Convert the listing into an array for display in tableview
var directoryArr = directoryStr.toString().split(',');

//Initialize tabledata 
var dirData = [];

for (var i=0; i < directoryArr.length; i++) {

      dirData.push({ leftImage:'/images/folder.png', title: directoryArr[i], value: Titanium.Filesystem.externalStorageDirectory + Titanium.Filesystem.separator + directoryArr[i], hasChild:true });   

      Ti.API.info(Titanium.Filesystem.externalStorageDirectory + directoryArr[i]);

};

  //Table view for directories
var tableDirs = Ti.UI.createTableView({
    data: dirData       
});             

输出如下:

使用上述代码输出数据

下面的代码应该给我列出其中目录的字符串,例如,上图中的图像目录。

  tableDirs.addEventListener('click', function (e) {

    if (e.rowData.hasChild) {


        //Get the SD card reference
        var secDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/' + e.rowData.title);

        //Get the directory listing
        var secDirStr = secDir.getDirectoryListing();

        alert(secDirStr);


    };



});

但相反,我得到了这个:

无法理解如何处理该对象

给我一个我不知道如何处理的对象。

有时如果我使用以下代码:

     var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/Images');

目录列表返回给我一个文件“deploy.json”。

任何指针将不胜感激。我对 Android 开发相当陌生,所以我可能会遗漏一些明显的东西。

提前致谢!。

4

1 回答 1

0

getDirectoryListing() 返回一个数组。要查看其内容,您必须查看数组中的特定项目,例如:secDirStr[0].toString();

试试下面的 for 循环来查看它的内容:

if (e.rowData.hasChild) {

    //Get the SD card reference
    var secDir = Titanium.Filesystem.getFile(Titanium.Filesystem.externalStorageDirectory + '/' + e.rowData.title);

    //Get the directory listing
    var secDirStr = secDir.getDirectoryListing();

    for (i=0, max=secDirStr.length; i<max; i++){
        alert(secDirStr[i].toString());
    }
};
于 2012-06-24T14:47:19.517 回答