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

本文介绍了Android应用中实现双击退出功能的方法,并提供了打印数组、处理文件扩展名的实用代码片段。此外,还详细展示了如何在Android应用中进行SD卡文件的读写与删除操作。

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"/>







01、数据简介 出口韧性是地级市在面对外部震荡和压力时,能够承受并迅速适应、应对变化的能力。这种能力体现在地级市经济结构的灵活性、创新能力和竞争力,以及地方政府的政策支持和产业调整能力等多个方面。 城市出口韧性对于城市的经济发展、就业稳定、国际贸易地位以及风险抵御能力等方面都具有重要影响。因此,城市应加强出口韧性的建设,提高应对外部冲击的能力,以推动其经济的可持续发展。 数据名称:地级市-城市出口韧性数据 数据年份:2011-2022年 02、相关数据 代码 年份 地区 城市 省份 城市出口韧性 距离港口的最近距离 最终进口额_百万人民币2 最终出口额_百万人民币2 人均道路面积2 年末金融机构各项贷款余额万元2 地区生产总值万元2 科学支出万元2 地方财政一般预算内支出万元2 城镇居民人均可支配收入元2 固定资产投资2 实际使用外商投资额百万美元2 城镇化率2 外贸依存度 出口贸易 年平均汇率 实际使用外商投资额百万人民币2 外资依存度 金融发展水平 财政投资力度 科学技术水平 出口偏离度 x_地区生产总值万元2 x_城镇化率2 x_人均道路面积2 x_外贸依存度 x_出口贸易 x_出口偏离度 x_金融发展水平 x_城镇居民人均可支配收入元2 x_财政投资力度 x_科学技术水平 x_距离港口的最近距离 x_外资依存度 地区生产总值万元2_sum y_地区生产总值万元2 城镇化率2_sum y_城镇化率2 人均道路面积2_sum y_人均道路面积2 外贸依存度_sum y_外贸依存度 出口贸易_sum y_出口贸易 出口偏离度_sum y_出口偏离度 金融发展水平_sum y_金融发展水平 城镇居民人均可支配收入元2_sum y_城镇居民人均可支配收入元2 财政投资力度_sum y_财政投资力度 科学技术水平_sum y_科学技术水平
内容概要:本文档详细介绍了一个基于Matlab实现的无人机空中通信仿真资源包,系统涵盖了无人机通信、三维路径规划、状态估计与多机协同等多个核心技术模块的仿真代码与案例研究。内容聚焦于无人机在复杂环境下的三维路径规划(如基于遗传算法GA、粒子群算法PSO、动态窗口法DWA等)、无人机姿态与轨迹的状态估计算法(如扩展卡尔曼滤波器EKF、UKF、不变扩展卡尔曼滤波IEKF、粒子滤波PF等),以及无人机通信链路建模与优化,并融合智能优化算法对系统性能进行提升。此外,资源包还拓展至微电网优化、MIMO检测、图像融合、信号处理等相关科研领域,构建了一个以无人机技术为核心、多学科交叉融合的综合性仿真研究体系。; 适合人群:具备一定Matlab编程能力与控制系统基础知识,从事无人机系统设计、无线通信、自动化控制、智能优化算法或相关领域研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①开展无人机通信系统建模与性能仿真分析;②实现复杂动态环境中无人机三维路径规划与实时避障;③研究基于多源传感器融合的无人机导航与状态估计方法;④结合智能优化算法提升无人机任务执行效率与系统鲁棒性; 阅读建议:建议读者依据资源包提供的模块化结构系统学习,优先掌握Matlab/Simulink基本仿真技能,重点研读路径规划与状态估计部分的算法实现与代码细节,并通过实际调试与二次开发加深对无人机系统集成与优化策略的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值