コード例 #1
0
 private void MostrarExploradorArchivos()
 {
     ChooserDialog chooserDialog = new ChooserDialog(this).WithStringResources("Choose a file", "Choose", "Cancel").WithOptionStringResources("New folder", "Delete", "Cancel", "Ok").EnableOptions(true).DisplayPath(true).WithChosenListener((dir, dirFile) =>
     {
         PATH = dir;
         Toast.MakeText(this, (dirFile.IsDirectory ? "FOLDER: " : "FILE: ") + dir, ToastLength.Short).Show();
         ArchivoSeleccionado();
     }).Show();
 }
コード例 #2
0
        public void OnClick(object sender, System.EventArgs e)
        {
            //choose a file
            Context ctx = this;

            if (ctx == null)
            {
                return;
            }

            List <File> files = new List <File>();

            ChooserDialog chooserDialog;

            if (darkTheme.Checked)
            {
                chooserDialog = new ChooserDialog(ctx, Resource.Style.FileChooserStyle_Dark);
            }
            else
            {
                chooserDialog = new ChooserDialog(ctx);
            }

            chooserDialog
            .WithResources(dirOnly.Checked ? Resource.String.title_choose_folder : Resource.String.title_choose_file,
                           Resource.String.title_choose, Resource.String.dialog_cancel)
            .WithOptionResources(Resource.String.option_create_folder, Resource.String.options_delete,
                                 Resource.String.new_folder_cancel, Resource.String.new_folder_ok)
            // Optionally, you can use Strings instead:

            /*.WithStringResources(dirOnly.isChecked() ? "Choose a folder" : "Choose a file",
             *  "Choose", "Cancel")
             * .WithOptionStringResources("New folder",
             *  "Delete", "Cancel", "Ok")*/
            .DisableTitle(disableTitle.Checked)
            .EnableOptions(EnableOptions.Checked)
            .TitleFollowsDir(titleFollowsDir.Checked)
            .DisplayPath(displayPath.Checked)
            .EnableDpad(dpad.Checked);

            if (filterImages.Checked)
            {
                // Most common image file extensions (source: http://preservationtutorial.library.cornell
                // .edu/presentation/table7-1.html)
                chooserDialog.WithFilter(dirOnly.Checked,
                                         allowHidden.Checked,
                                         "tif", "tiff", "gif", "jpeg", "jpg", "jif", "jfif",
                                         "jp2", "jpx", "j2k", "j2c", "fpx", "pcd", "png", "pdf");
            }
            else
            {
                chooserDialog.WithFilter(dirOnly.Checked, allowHidden.Checked);
            }

            if (EnableMultiple.Checked)
            {
                chooserDialog.EnableMultiple(true);
                if (Build.VERSION.SdkInt >= BuildVersionCodes.JellyBeanMr1)
                {
                    chooserDialog
                    .WithOnDismissListener((AlertDialog) =>
                    {
                        if (files.Count == 0)
                        {
                            return;
                        }

                        List <string> paths = new List <string>();
                        foreach (File file in files)
                        {
                            paths.Add(file.AbsolutePath);
                        }

                        new Android.App.AlertDialog.Builder(ctx)
                        .SetTitle(files.Count + " files selected:")
                        .SetAdapter(new ArrayAdapter <string>(ctx, Android.Resource.Layout.SimpleExpandableListItem1, paths), (IDialogInterfaceOnClickListener)null)
                        .Create()
                        .Show();
                    })
                    .WithOnLastBackPressedListener((alertDialog) =>
                    {
                        files.Clear();
                        chooserDialog.Dismiss();
                    })
                    .WithNegativeButtonListener((alertDialog, which) =>
                    {
                        files.Clear();
                        chooserDialog.Dismiss();
                    })
                    .WithChosenListener((dir, dirFile) =>
                    {
                        if (continueFromLast.Checked)
                        {
                            _path = dir;
                        }
                        if (dirFile.IsDirectory)
                        {
                            chooserDialog.Dismiss();
                            return;
                        }
                        if (!files.Remove(dirFile))
                        {
                            files.Add(dirFile);
                        }
                    });
                }
                else
                {
                    // OnDismissListener is not supported, so we simulate something similar anywhere where the
                    // dialog might be dismissed.
                    void OnDismis()
                    {
                        if (files.Count == 0)
                        {
                            return;
                        }

                        List <string> paths = new List <string>();

                        foreach (File file in files)
                        {
                            paths.Add(file.AbsolutePath);
                        }

                        new Android.App.AlertDialog.Builder(ctx)
                        .SetTitle(files.Count + " files selected:")
                        .SetAdapter(new ArrayAdapter <string>(ctx, Android.Resource.Layout.SimpleExpandableListItem1, paths), (IDialogInterfaceOnClickListener)null)
                        .Create()
                        .Show();
                    };

                    chooserDialog
                    .WithOnLastBackPressedListener(dialog =>
                    {
                        files.Clear();
                        dialog.Dismiss();
                        OnDismis();
                    })
                    .WithNegativeButtonListener((dialog, which) =>
                    {
                        files.Clear();
                        dialog.Dismiss();
                        OnDismis();
                    })
                    .WithChosenListener((dir, dirFile) =>
                    {
                        if (continueFromLast.Checked)
                        {
                            _path = dir;
                        }
                        if (dirFile.IsDirectory)
                        {
                            chooserDialog.Dismiss();
                            OnDismis();
                            return;
                        }
                        if (!files.Remove(dirFile))
                        {
                            files.Add(dirFile);
                        }
                    });
                }
            }
            else
            {
                chooserDialog.WithChosenListener((dir, dirFile) =>
                {
                    if (continueFromLast.Checked)
                    {
                        _path = dir;
                    }
                    Toast.MakeText(ctx, (dirFile.IsDirectory ? "FOLDER: " : "FILE: ") + dir,
                                   ToastLength.Short).Show();
                    _tv.Text = dir;
                    if (dirFile.IsFile)
                    {
                        // Not implemented
                        //_iv.SetImageBitmap(ImageUtil.decodeFile(dirFile));
                    }
                });
            }
            if (continueFromLast.Checked && _path != null)
            {
                chooserDialog.WithStartFile(_path);
            }
            if (displayIcon.Checked)
            {
                chooserDialog.WithIcon(Resource.Mipmap.ic_launcher);
            }
            if (dateFormat.Checked)
            {
                chooserDialog.WithDateFormat("dd MMMM yyyy");
            }
            if (back.Checked)
            {
                chooserDialog.WithOnBackPressedListener((dialog) =>
                {
                    chooserDialog.GoBack();
                });
            }

            chooserDialog.Build().Show();
        }
コード例 #3
0
 public static ChooserDialog WithNavigateUpTo(this ChooserDialog dialog, Predicate <File> canUpTo)
 {
     return(dialog.WithNavigateUpTo(new CanNavigateUp(canUpTo)));
 }
コード例 #4
0
 public static ChooserDialog WithChosenListener(this ChooserDialog dialog, Action <string, File> result)
 {
     return(dialog.WithChosenListener(new Result(result)));
 }
コード例 #5
0
 public static ChooserDialog WithAdapterSetter(this ChooserDialog dialog, Action <DirAdapter> apply)
 {
     return(dialog.WithAdapterSetter(new AdapterSetter(apply)));
 }
コード例 #6
0
 public static ChooserDialog WithOnDismissListener(this ChooserDialog dialog, Action <IDialogInterface> onDismiss)
 {
     return(dialog.WithOnDismissListener(new DismissListener(onDismiss)));
 }
コード例 #7
0
 public static ChooserDialog WithOnCancelListener(this ChooserDialog dialog, Action <IDialogInterface> onCancel)
 {
     return(dialog.WithOnCancelListener(new CancellListener(onCancel)));
 }
コード例 #8
0
 public static ChooserDialog WithNegativeButtonListener(this ChooserDialog dialog, Action <IDialogInterface, int> onClick)
 {
     return(dialog.WithNegativeButtonListener(new NegativeButtonListener(onClick)));
 }
コード例 #9
0
 public static ChooserDialog CustomizePathView(this ChooserDialog dialog, Action <TextView> customize)
 {
     return(dialog.CustomizePathView(new CustomizePathViewImp(customize)));
 }
コード例 #10
0
 public static ChooserDialog WithOnLastBackPressedListener(this ChooserDialog dialog, Action <AlertDialog> onBackPressed)
 {
     return(dialog.WithOnLastBackPressedListener(new OnBackPressed(onBackPressed)));
 }