|
|
51CTO旗下网站
|
|
移动端

3.3.2 具体实现(2)

《Android游戏开发从入门到精通》第3章Android 游戏开发基础,本章将引导读者开始Android 手机游戏开发,详细讲解Android 游戏开发的基本知识,为读者进行本书后面知识的学习打下基础。本节为大家介绍具体实现。

作者:王玉芹来源:机械工业出版社|2017-11-14 11:23

3.3.2 具体实现(2)

使用showListActivity 来显示已经存在的文件列表,具体代码如下。

  1. private void showListActivity  
  2. (String path, String 􀙛 ilename, String data)  
  3. {  
  4. Intent intent = new Intent();  
  5. intent.setClass(SDC_1.this, SDC_2.class);  
  6. Bundle bundle = new Bundle();  
  7. /* 文件路径 */  
  8. bundle.putString(“path”, path);  
  9. /* 文件名 */  
  10. bundle.putString(“􀙛 ilename”, 􀙛 ilename);  
  11. /* 文件内容 */  
  12. bundle.putString(“data”, data);  
  13. intent.putExtras(bundle);  
  14. startActivity(intent);  

使用方法deleteFile()删除选定的文件,具体代码如下。

  1. private void deleteFile()  
  2. {  
  3. int position = this.getSelectedItemPosition();  
  4. if (position >= 0)  
  5. {  
  6. File file = new File(path + java.io.File.separator +  
  7. items.get(position));  
  8. /* 删除文件 */  
  9. file.delete();  
  10. items.remove(position);  
  11. getListView().invalidateViews();  
  12. }  
  13. }  

(3)编写文件SDC_2.java,具体实现流程如下。

设置myEditText1 来放置文件内容,然后定义Bundle 对象bunde 来获取路径path 和数据data。具体代码如下。

  1. public void onCreate(Bundle savedInstanceState)  
  2. {  
  3. super.onCreate(savedInstanceState);  
  4. setContentView(R.layout.ex06_09_2);  
  5. /* 放置文件内容的EditText */  
  6. myEditText1 = (EditText) findViewById(R.id.myEditText1);  
  7. Bundle bunde = this.getIntent().getExtras();  
  8. path = bunde.getString("path");  
  9. data = bunde.getString("data");  
  10. fileName = bunde.getString("fileName");  
  11. myEditText1.setText(data);  

使用onOptionsItemSelected 根据用户选择而进行操作,当选择MENU_SAVE 时会保存这个文件。具体代码如下。

  1. public boolean onOptionsItemSelected(MenuItem item)  
  2. {  
  3. super.onOptionsItemSelected(item);  
  4. switch (item.getItemId())  
  5. {  
  6. case MENU_SAVE:  
  7. saveFile();  
  8. break;  
  9. }  
  10. return true;  

使用onCreateOptionsMenu(Menu menu)添加一个MENU,具体代码如下。

  1. @Override  
  2. public boolean onCreateOptionsMenu(Menu menu)  
  3. {  
  4. super.onCreateOptionsMenu(menu);  
  5. /* 添加MENU */  
  6. menu.add(Menu.NONE, MENU_SAVE, 0, R.string.strSaveMenu);  
  7. return true;  

使用方法saveFile()保存一个文件。定义LayoutInflater 对象factory 用于跳出存档,然后通过myDialogEditText 获取Dialog 里的EditText,最后实现存档处理。具体代码如下。

  1. private void saveFile()  
  2. {  
  3. /* 跳出存档的Dialog */  
  4. LayoutInflater factory = LayoutInflater.from(this);  
  5. final View textEntryView = factory.inflate  
  6. (R.layout.save_dialog, null);  
  7. Builder mBuilder1 = new AlertDialog.Builder(SDC_2.this);  
  8. mBuilder1.setView(textEntryView);  
  9. /* 取得Dialog 里的EditText */  
  10. myDialogEditText = (EditText) textEntryView.findViewById  
  11. (R.id.myDialogEditText);  
  12. myDialogEditText.setText(fileName);  
  13. mBuilder1.setPositiveButton  
  14. (  
  15. R.string.str_alert_ok,new DialogInterface.OnClickListener()  
  16. {  
  17. public void onClick(DialogInterface dialoginterface, int i)  
  18. {  
  19. /* 存档 */  
  20. String Filename = path + java.io.File.separator  
  21. + myDialogEditText.getText().toString();  
  22. java.io.BufferedWriter bw;  
  23. try  
  24. {  
  25. bw = new java.io.BufferedWriter(new java.io.FileWriter(  
  26. new java.io.File(Filename)));  
  27. String str = myEditText1.getText().toString();  
  28. bw.write(str, 0, str.length());  
  29. bw.newLine();  
  30. bw.close();  
  31. }  
  32. catch (IOException e)  
  33. {  
  34. e.printStackTrace();  
  35. }  
  36. /* 回到SDC_1 */  
  37. Intent intent = new Intent();  
  38. intent.setClass(SDC_2.this, SDC_1.class);  
  39. Bundle bundle = new Bundle();  
  40. /* 将路径传到SDC_1 */  
  41. bundle.putString("path", path);  
  42. intent.putExtras(bundle);  
  43. startActivity(intent);  
  44. finish();  
  45. }  
  46. });  
  47. mBuilder1.setNegativeButton(R.string.str_alert_cancel, null);  
  48. mBuilder1.show();  
  49. }  

执行后的效果如图3-17 所示,当单击一个按钮后会显示对应的存储信息,如图3-18 所示。当单击图3-18 中的“menu”后,会弹出两个menu 选项,如图3-19 所示。此时,可以通过这两个选项分别管理存储卡中的数据。

注意:如果使用的是Eclipse 来开发Android 项目,则可以在可视化环境下管理SD 卡中的文件。

(1)单击Eclipse 右上角的“DDMS”选项卡,如图3-20 所示。

(2)在右侧列表中单击“mnt”选项,里面的“sdcard”文件夹就是系统模拟的SD 卡目录。如图3-21 所示。

(3)通过顶部中的工具按钮可以对SD 卡进行操作,如图3-22 所示。

图3-22 中操作按钮的具体说明如下。

下载SD 卡中的文件到本地。

上传本地文件到SD 卡。

在SD 卡中新建文件。

删除SD 卡中的某个文件。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#入门经典(第3版)

本书将全面介绍C#编程的所有知识,共分为5篇:第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的技术,应有尽有。第2篇是Win...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊