1 package jp.sourceforge.gokigen.memoma.dialogs;
3 import android.app.AlertDialog;
4 import android.app.Dialog;
5 import android.content.Context;
6 import android.content.DialogInterface;
7 import android.view.LayoutInflater;
8 import android.view.View;
9 import android.widget.AdapterView;
10 import android.widget.ListView;
12 import jp.sourceforge.gokigen.memoma.fileio.ExternalStorageFileUtility;
13 import jp.sourceforge.gokigen.memoma.holders.MeMoMaDataFileHolder;
14 import jp.sourceforge.gokigen.memoma.R;
22 public class FileSelectionDialog
24 private Context context = null;
25 private IResultReceiver resultReceiver = null;
26 private ExternalStorageFileUtility fileUtility = null;
27 private MeMoMaDataFileHolder dataFileHolder = null;
28 private String title = null;
29 private String fileExtension = null;
30 private Dialog dialogRef = null;
37 public FileSelectionDialog(Context arg, String titleMessage, ExternalStorageFileUtility utility, String extension, IResultReceiver receiver)
40 resultReceiver = receiver;
42 fileUtility = utility;
43 fileExtension = extension;
44 dataFileHolder = new MeMoMaDataFileHolder(context, android.R.layout.simple_list_item_1, fileUtility, extension);
50 * @param currentFileName
51 * @param extendDirectory
53 public void prepare(String currentFileName, String extendDirectory)
55 dataFileHolder.updateFileList(currentFileName, extendDirectory);
63 public Dialog getDialog()
65 LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
66 final View layout = inflater.inflate(R.layout.listdialog, null);
68 AlertDialog.Builder builder = new AlertDialog.Builder(context);
70 final ListView listView = (ListView) layout.findViewById(R.id.ListDataFileName);
71 listView.setAdapter(dataFileHolder);
73 // 表示するデータ(ダイアログタイトル)を準備する
76 builder.setTitle(title);
78 builder.setView(layout);
81 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
83 public void onItemClick(AdapterView<?> parentView, View view, int position, long id)
85 ListView listView = (ListView) parentView;
86 String fileName = (String) listView.getItemAtPosition(position);
88 /// リストが選択されたときの処理...データを開く
89 if (resultReceiver != null)
91 resultReceiver.selectedFileName(fileName + fileExtension);
93 if (dialogRef != null)
101 builder.setCancelable(true);
102 builder.setNegativeButton(context.getString(R.string.confirmNo), new DialogInterface.OnClickListener()
104 public void onClick(DialogInterface dialog, int id)
110 dialogRef = builder.create();
120 public interface IResultReceiver
126 public abstract void selectedFileName(String fileName);