[解決済み] ファイル選択ダイアログ【終了
2022-05-11 20:02:50
質問
完全なファイル選択ダイアログをご存知の方はいらっしゃいませんか?特定の拡張子を持つファイルを除いて、すべてのファイルをフィルターにかけることができるようなものでしょうか?
私のプロジェクトの1つに簡単に実装できるほど軽量なものは見つかっていません。唯一の選択肢は、OI FileManagerのopen intentsを使うことですが、これはユーザーがすでにファイルマネージャーをインストールしている必要があります。
フォルダをブラウズしてファイルを選択し、そのパスを返すようなダイアログをどなたかご指摘いただければ幸いです。
どのように解決するのですか?
をオーバーライドする必要があります。
onCreateDialog
をActivityに追加してください。
//In an Activity
private String[] mFileList;
private File mPath = new File(Environment.getExternalStorageDirectory() + "//yourdir//");
private String mChosenFile;
private static final String FTYPE = ".txt";
private static final int DIALOG_LOAD_FILE = 1000;
private void loadFileList() {
try {
mPath.mkdirs();
}
catch(SecurityException e) {
Log.e(TAG, "unable to write on the sd card " + e.toString());
}
if(mPath.exists()) {
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
File sel = new File(dir, filename);
return filename.contains(FTYPE) || sel.isDirectory();
}
};
mFileList = mPath.list(filter);
}
else {
mFileList= new String[0];
}
}
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
AlertDialog.Builder builder = new Builder(this);
switch(id) {
case DIALOG_LOAD_FILE:
builder.setTitle("Choose your file");
if(mFileList == null) {
Log.e(TAG, "Showing file picker before loading the file list");
dialog = builder.create();
return dialog;
}
builder.setItems(mFileList, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mChosenFile = mFileList[which];
//you can do stuff with the file here too
}
});
break;
}
dialog = builder.show();
return dialog;
}
関連
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] ファイルへの追記はどのように行うのですか?
-
[解決済み] Gitで1つのファイルの作業コピーの変更を元に戻す?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Ok "と "Cancel "オプションのあるダイアログを作成する方法
-
[解決済み】ディレクトリを開くダイアログ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
Androidプロセス生存のためのソリューション
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
アンドロイドの遅延実行のいくつかの方法
-
Android Studioのgitの使用とgitの設定パス
-
[解決済み】androidでファイルパスからコンテンツURIを取得する。