0

現在、次を使用して設定されたスピナーがあります。

        File sd = new File("sdcard/");
    File[] sdDirList = sd.listFiles();
    // String[] filenames = getApplicationContext().fileList();
    List<File> list = new ArrayList<File>();
    for (int i = 0; i < sdDirList.length; i++) {
        // Log.d("Filename", filenames[i]);
        list.add(sdDirList[i]);
    }
    ArrayAdapter<File> filenameAdapter = new ArrayAdapter<File>(this,
            android.R.layout.simple_dropdown_item_1line, list);
    spinSelected.setOnItemSelectedListener(this);
    spinSelected.setAdapter(filenameAdapter);
    // filename = spinSelected.toString();

}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    filename = spinSelected.getSelectedItem().toString();
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

しかし、このスピナーでやりたいことが 2 つありますが、どちらもうまくいきません。1 つ目は、拡張子が .txt のファイルのみを表示することです。sdcard のすべてがそのまま表示されますが、.txt だけに関心があります。

さらに、スピナーは現在 sdcard/filename.extension のフルパスを表示していますが、理想的にはファイル名だけを表示したいのですが、それは可能ですか?

前もって感謝します。

4

1 に答える 1

1

次のようなものを追加して、sdDirList 配列をさらに処理する必要があります。

for(int x = 0; x < sdDirList.length; x++)
{
    if(sdDirList[n].getName().endsWith(".txt"))
    {
        // add it to your array adapter
    }
}

ここでJavaファイルオブジェクトのドキュメントを確認することをお勧めします: http://docs.oracle.com/javase/6/docs/api/java/io/File.html

于 2013-04-22T16:11:24.413 に答える