3.3.2 具体实现(1)
《Android游戏开发从入门到精通》第3章Android 游戏开发基础,本章将引导读者开始Android 手机游戏开发,详细讲解Android 游戏开发的基本知识,为读者进行本书后面知识的学习打下基础。本节为大家介绍具体实现。
- 作者:王玉芹来源:机械工业出版社|2017-11-14 11:20
有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研
3.3.2 具体实现(1)
本实例的实现文件是SDC.java、SDC_1.java 和SDC_2.java,接下来将分别介绍上述文件的具体实现流程。
(1)编写文件SDC.java,具体实现流程如下。
用方法getFilesDir()获取SD 卡的目录,设置当SD 卡无插入时myButton2 处于不能按的状态。对应代码如下。
- /* 取得目前File 目录 */
- fileDir = this.getFilesDir();
- /* 取得SD 卡目录 */
- sdcardDir = Environment.getExternalStorageDirectory();
- /* 当SD 卡无插入时将myButton2 设成不能按 */
- if (Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED))
- {
- myButton2.setEnabled(false);
- }
分别定义按钮单击处理事件setOnClickListener 和setOnClickListener,具体代码如下。
- myButton1.setOnClickListener(new Button.OnClickListener()
- {
- @Override
- public void onClick(View arg0)
- {
- String path = fileDir.getParent() + java.io.File.separator
- + fileDir.getName();
- showListActivity(path);
- }
- });
- myButton2.setOnClickListener(new Button.OnClickListener()
- {
- @Override
- public void onClick(View arg0)
- {
- String path = sdcardDir.getParent() + sdcardDir.getName();
- showListActivity(path);
- }
- });
- }
定义方法showListActivity(String path),并定义一个Intent 对象intent,然后将路径传到SDC_1。具体代码如下。
- private void showListActivity(String path)
- {
- Intent intent = new Intent();
- intent.setClass(SDC.this, SDC_1.class);
- Bundle bundle = new Bundle();
- /* 将路径传到example_1 */
- bundle.putString("path", path);
- intent.putExtras(bundle);
- startActivity(intent);
- }
- }
(2)编写文件SDC_1.java,具体实现流程如下。
将主Activity 传来的path(路径)字符串作为传入路径,如果不存在这个路径,则使用java.io.File 创建一个新的。具体代码如下。
- public class SDC_1 extends ListActivity
- {
- private List<String> items = null;
- private String path;
- protected final static int MENU_NEW = Menu.FIRST;
- protected final static int MENU_DELETE = Menu.FIRST + 1;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.ex06_09_1);
- Bundle bunde = this.getIntent().getExtras();
- path = bunde.getString("path");
- java.io.File file = new java.io.File(path);
- /* 当该目录不存在时将目录创建 */
- if (!file.exists())
- {
- file.mkdir();
- }
- fill(file.listFiles());
- }
通过onOptionsItemSelected 根据单击的MENU 选项实现添加或删除操作,具体代码如下。
- public boolean onOptionsItemSelected(MenuItem item)
- {
- super.onOptionsItemSelected(item);
- switch (item.getItemId())
- {
- case MENU_NEW:
- /* 单击添加MENU */
- showListActivity(path, "", "");
- break;
- case MENU_DELETE:
- /* 单击删除MENU */
- deleteFile();
- break;
- }
- return true;
- }
使用onCreateOptionsMenu(Menu menu)用于添加需要的MENU,具体代码如下。
- @Override
- public boolean onCreateOptionsMenu(Menu menu)
- {
- super.onCreateOptionsMenu(menu);
- /* 添加MENU */
- menu.add(Menu.NONE, MENU_NEW, 0, R.string.strNewMenu);
- menu.add(Menu.NONE, MENU_DELETE, 0, R.string.strDeleteMenu);
- return true;
- }
当单击文件名后获取文件内容,具体代码如下。
- protected void onListItemClick
- (ListView l, View v, int position, long id)
- {
- File file = new File
- (path + java.io.File.separator + items.get(position));
- /* 单击文件取得文件内容 */
- if (file.isFile())
- {
- String data = "";
- try
- {
- FileInputStream stream = new FileInputStream(file);
- StringBuffer sb = new StringBuffer();
- int c;
- while ((c = stream.read()) != -1)
- {
- sb.append((char) c);
- }
- stream.close();
- data = sb.toString();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- showListActivity(path, file.getName(), data);
- }
- }
使用方法fill(File[] files)将内容填充到文件,具体代码如下。
- private void fill(File[] files)
- {
- items = new ArrayList<String>();
- if (files == null)
- {
- return;
- }
- for (File file : files)
- {
- items.add(file.getName());
- }
- ArrayAdapter<String> fileList = new ArrayAdapter<String>
- (this,android.R.layout.simple_list_item_1, items);
- setListAdapter(fileList);
- }
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码
51CTO读书频道活动讨论群:365934973
回书目 上一节 下一节 |
- 大家都在看
- 猜你喜欢
- 24H热文
- 一周话题
- 本月最赞
- 3.3.1.1 标准9针串口引脚定义4.5.1 登录页面login.jsp8.2.8 drawRoundRect方法:绘制圆角矩形2.6.1 @Produces注解一、中国制造2025主要内容Python即学即用深入理解Spring Cloud与微服务构建12.2 使用DROP INDEX删除索引
- 3.3.1.1 标准9针串口引脚定义一、中国制造2025主要内容8.2.8 drawRoundRect方法:绘制圆角矩形7.2.3 用ALTER TABLE语句来创建索引2.6.1 @Produces注解深入理解Spring Cloud与微服务构建12.2 使用DROP INDEX删除索引8.2.12 drawArc方法:绘制圆弧
- 3.3.1.1 标准9针串口引脚定义深入理解Spring Cloud与微服务构建8.2.8 drawRoundRect方法:绘制圆角矩形一、中国制造2025主要内容7.2.3 用ALTER TABLE语句来创建索引2.3 三角函数的图像12.2 使用DROP INDEX删除索引2.6.1 @Produces注解
视频课程+更多
-
Shell运维自动化高级实战视频课程[老男孩Linu
讲师:老男孩107285人学习过
-
【王佩丰】PowerPoint2010视频教程
讲师:王佩丰747358人学习过
-
2018年软考网络规划设计师-下午案例分析历年
讲师:小任老师29411人学习过
最新专题+更多
- 精选博文
- 论坛热帖
- 下载排行
读 书 +更多
网管员必读—网络应用(第2版)
本书虽然是《网管员必读—网络应用》的改版,但它绝不是简单的修改,而是完完全全的重写,内容更实用、更专业。全书共9章,13个大小方案,...
-
订阅51CTO邮刊
点击这里查看样刊