エンジニア未満がエンジニア以上を目指す日々(仮)

戦力外通告の悔しさをバネに自身の技術力向上を目指した技術ブログ

ファイル選択機能の追加 - 壁紙変更アプリ (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
                    // 今までと同じ

これで、ディレクトリを掘り進めながら画像ファイルを選択できます。
てか、実装見れば一目瞭然ですが、残念実装の以下二点。

  • ほんとに掘り進むだけで上に上がれません
  • スクリーンショット以外を選択出来る様になったので、画像ファイル以外を選択出来て死にます

もうちょっと何とかします。