如何使用datetimestamp排序文件如何使用、文件、datetimestamp

2023-09-03 23:09:33 作者:奔跑告别过去种种

我的拍摄图像和保存到SD卡和显示在列表,但在这里我需要一个小的变化,的还是我老在上面,最迟在底部的,所以现在的的我想告诉张最新画面,顶部的的datetimestamp使用作为文件名的一部分的基础

I am capturing images, then storing into SD Card and showing in a List, but here i need a small change, still i am getting old on top and latest at bottom, so now i want to show latest picture on the top on the basis of datetimestamp using as a part of file name.

UploadActivity.java code: -

UploadActivity.java code:-

 String fileName;

 static List <String> ImageList;

  /*** Get Images from SDCard ***/
    ImageList = getSD();

    // ListView and imageAdapter
    lstView = (ListView) findViewById(R.id.listView1);
    lstView.setAdapter(new ImageAdapter(this)); 
    }

    public static List <String> getSD()
    {
        List <String> it = new ArrayList <String>();
        String string = "/mnt/sdcard/Pictures/SamCam/";
        f = new File (string+ CameraLauncherActivity.folder+ "/");
        files = f.listFiles ();

        for (int i = 0; i < files.length; i++)
            {
                file = files[i];
                Log.d("Count",file.getPath());
                it.add (file.getPath());
            }
    return it;  
    }


    public class ImageAdapter extends BaseAdapter
    {
        private Context context;

            public ImageAdapter(Context c)
        {
            // TODO Auto-generated method stub
            context = c;

        }

注意:我使用的,而储存我的图像转换成SD卡的日期/时间戳记

Note: I am using date/timestamp while storing my images into SD Card.

所以最后它看起来是这样的:

so finally it looks like this:

  AU_20140328163947_1_4_X-1-4-006.jpg

和仍文件列表在下面的格式,如下图所示:

and still files listing in below format, like below:

AU_20140328163947_1_4_X-1-4-006.jpg

 AU_20140328163948_1_4_X-1-4-007.jpg

 AU_20140328163949_1_4_X-1-4-008.jpg

但我要列出文件以下格式: -

but i want to list files in below format:-

AU_20140328163949_1_4_X-1-4-008.jpg

 AU_20140328163948_1_4_X-1-4-007.jpg

 AU_20140328163947_1_4_X-1-4-006.jpg

code删除图像中的列表: -

// btnDelete
        final ImageButton btnDelete = (ImageButton) convertView.findViewById(R.id.btnDelete);
        btnDelete.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

                    // set title
                    alertDialogBuilder.setTitle("Delete Image");

                    // Setting Icon to Dialog
                    alertDialogBuilder.setIcon(R.drawable.ic_launcher);

                    // set dialog message
                    alertDialogBuilder
                        .setMessage("Are you sure you want to delete this image?")
                        .setCancelable(false)
                        .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,int id) {
                                // if this button is clicked, close
                                // current activity
                                // to get fileName
                                fileName = ImageList.get(position).toString().substring(strPath.lastIndexOf('/')+1, strPath.length());
                                // to get SD card path (Folders+fileName)
                                 String fileToDelete = Environment.getExternalStorageDirectory().getPath() +"/Pictures/SamCam/" + CameraLauncherActivity.folder+ "/" + fileName;
                                 Log.d("FileToDelete", fileToDelete);
                                  File myFile = new File(fileToDelete);
                                  // if image exists
                                      if(myFile.exists())
                                          // delete image
                                        myFile.delete();
                                      // get position and delete
                                      ImageList.remove(position);
                                      // to refresh the view
                                 ((BaseAdapter) lstView.getAdapter()).notifyDataSetChanged(); 

                                 dialog.cancel();
                            }
                          })
                        .setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,int id) {
                                // if this button is clicked, just close
                                // the dialog box and do nothing
                                dialog.cancel();
                            }
                        });

                        // create alert dialog
                        AlertDialog alertDialog = alertDialogBuilder.create();

                        // show it
                        alertDialog.show();
                // TODO Auto-generated method stub

            }
        });

        return convertView;

            }   
        }

推荐答案

如果你收到相反的顺序,您可以使用反向环路数据。

解决方案

尝试下面循环

Try below loop

而不是

 for (int i = 0; i < files.length; i++)
 {
      file = files[i];
      Log.d("Count",file.getPath());
      it.add (file.getPath());
  }

或排序与特定领域的数据

排序阵列中的数据。

Arrays.sort(files, new Comparator<Object>()
{
    public int compare(Object o1, Object o2) {

        if (((File)o1).lastModified() > ((File)o2).lastModified()) {
            return -1;
        } else if (((File)o1).lastModified() < ((File)o2).lastModified()) {
            return +1;
        } else {
            return 0;
        }
    }

});

for (int i = 0; i < files.length; i++)
 {
      file = files[i];
      Log.d("Count",file.getPath());
      it.add (file.getPath());
  }