-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       
});             

それはこれを出力します:

上記のコードを使用したデータ出力

次のコードは、上の画像の Images ディレクトリなど、内部のディレクトリを一覧表示する文字列を提供するはずです。

  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() は配列を返します。その内容を表示するには、次のように配列内の特定の項目を確認する必要があります

以下の 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 に答える