私のアクティビティのボタンをクリックして、アクセスしたいフォルダのarraylistを表示する別のアクティビティを開きます。したがって、次のアクティビティに進むコードは簡単です(新しいアクティビティをインテントで開始する)。しかし、私はarraylistにこの新しいアクティビティのフォルダの内容を表示したいと思います。フォルダ内のファイルのArrayList Androidストレージ/ストレージ/エミュレート/ 0/
このコンテンツのパスは、自分のデバイスの内部ストレージにあります(外部/ SDカードストレージではありません)。私は以下のディレクトリ
/storage/emulated/0/Android/data/com.../files/
COMからファイルを表示したい
...は、偽のパス名ですパッケージ名があることを説明するだけです。
結論私は新しい活動のarraylistのファイル(テキストファイルや写真など)の内容を表示したいですか? 'File'でこのパスを指し示すと、arraylistは表示されず、空白の画面が表示されます。
したがって、たとえば:
String path = "/storage/emulated/0/Android/data/com.../files/";
File dir = new File(path);
List values = new ArrayList();
String[] list = dir.list();
if (list != null) {
for (String file : list) {
if (!file.startsWith(".")) {
values.add(file);
}
}
}
Collections.sort(values);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_2, android.R.id.text1, values);
setListAdapter(adapter);
あなたのArraylistの人口は増えていますか?ルートされていないデバイスでは、特定のディレクトリにしかアクセスできません。あなたの 'dir.list()'はnullを返すかもしれません –
Galvin、 私はプログラムをデバッグしました。はい、nullを返しています。私は根づいていないデバイスを使用しています。これは、すべてのユーザーがルートされたデバイスを持つわけではないためです。デバイスがルートされていない場合、内部ストレージにアクセスする方法はありませんか? または、このフォルダにユーザーを連れて来るスポットファイルマネージャーを作成するための最小限のコードやコードを入れる方法はありますか? –
あなたはsdcardとここに 'getApplicationContext()。getApplicationInfo()。dataDir'に記載されているディレクトリにアクセスするだけです。 –