ファイル選択機能の追加 - 壁紙変更アプリ (9)
今までは画像選択をスクリーンショットのディレクトリ固定にしていました。
今回は別のディレクトに移動できるようにしてみます。
と言いつつ、今回は時間の都合で残念実装。
初期位置を変更しました。
//files = new File("/storage/sdcard0/Pictures/Screenshots").listFiles(); files = new File("/storage/sdcard0/").listFiles();
onItemClick を修正して、ディレクトリの場合はリストを再作成して、
onItemClick を抜けます。
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String click_parent = (String) parent.getClass().getSimpleName(); String click_position = String.valueOf(position); String click_id = String.valueOf(id); Log.v(TAG, String.format("onItemClick click_parent : %s", click_parent)); Log.v(TAG, String.format("onItemClick click_position : %s", click_position)); Log.v(TAG, String.format("onItemClick click_id : %s", click_id)); if(files[position].isDirectory() == true) { item_list.clear(); files = new File(files[position].toString()).listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { item_list.add(files[i].getName()); } } ArrayAdapter<String> arrayadapter = new ArrayAdapter<String> (SubActivity.this, android.R.layout.simple_expandable_list_item_1, item_list); listview.setAdapter(arrayadapter); } else if(files != null) { // Implementation for changing the wallpaper // 今までと同じ
これで、ディレクトリを掘り進めながら画像ファイルを選択できます。
てか、実装見れば一目瞭然ですが、残念実装の以下二点。
- ほんとに掘り進むだけで上に上がれません
- スクリーンショット以外を選択出来る様になったので、画像ファイル以外を選択出来て死にます
もうちょっと何とかします。