Динамическое чтение текстового файла по выбору пользователя в Android - PullRequest
0 голосов
/ 11 апреля 2011

Я создаю приложение для Android, которое читает текстовые файлы. Теперь у меня есть несколько текстовых файлов в SDCard. Расположение файлов: / sdcard / textfile /
имена файлов: abc.txt def.txt ghi.txt

Я хочу, чтобы, когда пользователи выбирали любой файл, выбранный файл читался. я знаю код для чтения одного файла * 1004 т.е. *

File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,pathtofile);
 BufferedReader br = new BufferedReader(new FileReader(file));

pathtofile хранит заданный путь к файлу abc.txt.

Есть ли способ передать путь к файлу объекта для файла, выбранного пользователем в настоящее время он работает для abc.txt, поскольку я определил его путь в pathtofile

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

Вы также можете составить список всех элементов в вашей папке текстового файла и сохранить его в списке, из которого пользователь может выбирать.

public class DirectoryBrowser extends ListActivity {

private List<String> items = null;
private File currentDirectory;
private ArrayAdapter<String> fileList;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    currentDirectory = new File("/sdcard/textfile");
    getFiles(currentDirectory.listFiles());

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id){
    int selectedRow = (int)id;

        currentDirectory = new File(items.get(selectedRow));
        if(currentDirectory.isDirectory()){
            getFiles(currentDirectory.listFiles());
        }else{
            //if the selected file is not a directory. get the filename
            currentDirectory.getPath();
        }
}

private void getFiles(File[] files){
    items = new ArrayList<String>();
    for(File file : files){
        items.add(file.getPath());
    }
    fileList = new ArrayAdapter<String>(this,R.layout.list_text, items);
    setListAdapter(fileList);
}


} 
0 голосов
/ 12 апреля 2011

Вы можете использовать AlertDialog со списком.

final CharSequence[] items = {"abc.txt", "def.txt", "ghi.txt"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a file");
builder.setItems(items, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {
        //Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();

        File sdcard = Environment.getExternalStorageDirectory();
        File file = new File(sdcard,items[item]);
        BufferedReader br = new BufferedReader(new FileReader(file));
    }
});
AlertDialog alert = builder.create();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...