双击退出、输出、文件扩展名、SD卡文件操作

来源:互联网 发布:人工智能替代 编辑:程序博客网 时间:2024/05/17 22:15

1. 双击退出应用程序 
思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态。定时器是每次用户按下返回键才去创建。

private long exitTime = 0;public boolean onKeyDown(int keyCode, KeyEvent event) {   // 双击返回键,退出程序  if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){      if((System.currentTimeMillis()-exitTime) > 2000){      Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();                                    exitTime = System.currentTimeMillis();       } else {finish();  //使Activity结束System.exit(0);   //这个会终止虚拟机,退出java程序,这样的话,从Activity返回会有一瞬间白屏}return true;   }        return super.onKeyDown(keyCode, event);}

2. 打印数组信息
打印int型数组的元素:

int[] arrays={1,2,3,4,5,6,9,2}; for(int each:arrays)  {      System.out.println(each);  } 

3. 获取文件的扩展名和去掉文件的扩展名
/*  Java文件操作 获取文件扩展名  */   public static String getExtensionName(String filename) {        if ((filename != null) && (filename.length() > 0)) {            int dot = filename.lastIndexOf('.');            if ((dot >-1) && (dot < (filename.length() - 1))) {                return filename.substring(dot + 1);            }        }        return filename;    }    /*  Java文件操作 获取不带扩展名的文件名 */    public static String getFileNameNoEx(String filename) {         if ((filename != null) && (filename.length() > 0)) {             int dot = filename.lastIndexOf('.');             if ((dot >-1) && (dot < (filename.length()))) {                 return filename.substring(0, dot);             }         }         return filename;     } 
4. Int 与String转换
1如何将字串 String 转换成整数 int?
A. 有两个方法:
1). int i = Integer.parseInt([String]); 或i = Integer.parseInt([String],[int radix]);2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
1.) String s = String.valueOf(i);2.) String s = Integer.toString(i);3.) String s = "" + i; 
5.将文件保存到SD卡,从卡中取文件,及删除文件
 下面是从网上摘的一个对SDCARD操作的例子,保存一下。
 private static String sdState = Environment.getExternalStorageState(); private static String path = Environment.getExternalStorageDirectory().toString();   //*********************把文件写入到SD卡******************************//    public static void saveBitmap(Bitmap bitmap,String imageName)    {      File file;     File PicName;     if(sdState.equals(Environment.MEDIA_MOUNTED))     {      //获得sd卡根目录      file = new File(path + "/Huai/TicketsPic");      if(!file.exists())      {       file.mkdirs();      }      PicName = new File(file, imageName);      try {       if(!PicName.exists())       {        PicName.createNewFile();       }    FileOutputStream fos = new FileOutputStream(PicName);    if(PicName.getName().endsWith(".png"))    {     bitmap.compress(CompressFormat.PNG, 100, fos);    }    else if(PicName.getName().endsWith(".jpg"))    {     bitmap.compress(CompressFormat.JPEG, 100, fos);    }    fos.flush();    fos.close();   } catch (FileNotFoundException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }          }    }   ///**********************从SD卡读取文件***************************************//    public static Bitmap getBitmap(String imageName)    {     Bitmap bitmap = null;     File imagePic;     if(sdState.equals(Environment.MEDIA_MOUNTED))     {            imagePic = new File(path + "/Huai/TicketsPic", imageName);      if(imagePic.exists())      {       try {        bitmap = BitmapFactory.decodeStream(new FileInputStream(imagePic));       } catch (FileNotFoundException e) {//        e.printStackTrace();       }      }     }  return bitmap;    }    ///////////////////////////////将文件从SD卡删除////////////////////////////    public static void  deleteFile(File file)    {     if(sdState.equals(Environment.MEDIA_MOUNTED))     {      if (file.exists())      {       if (file.isFile())       {        file.delete();       }       // 如果它是一个目录       else if (file.isDirectory())       {        // 声明目录下所有的文件 files[];        File files[] = file.listFiles();        for (int i = 0; i < files.length; i++)        { // 遍历目录下所有的文件         deleteFile(files[i]); // 把每个文件 用这个方法进行迭代        }       }       file.delete();      }     }    }
要记得在AndroidMenifest中添加操作SDCARD的权限,不能操作不成功,到处找问题。
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>







0 0
原创粉丝点击