Android初级第二次小结
xml注释:
不能再标签的属性内部注释,在标签之外。
问题:
在控制台中出现:
You must restart adb and Eclipse
关掉Eclipse以及模拟器并杀死adb.exe这个进程,重新启动
Activity 界面
四大组件之一
三大要素:
1、声明一个类继承Activity
2、关联布局文件(setContentView())
3、必须在清单文件中注册
android:name = 包名 + 类名/> 在清单文件中配置入口界面 界面跳转: //打开一个界面 // Intent intent = new Intent();//意图 :界面之间沟通的桥梁 // intent.setClass(MainActivity.this, SecondActivity.class); Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); //关闭界面 finish(); A ----> B 步骤: 1、在A中: String string = mEditText.getText().toString().trim(); Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("text", string); intent.putExtra("int", 1); intent.putExtra("boolean", true); startActivity(intent); 2、在B中,onCreat(); //得到意图 Intent intent = getIntent(); //从意图或获取信息 String text = intent.getStringExtra("text"); int i = intent.getIntExtra("int", 0); boolean booleanExtra = intent.getBooleanExtra("boolean", false); A ----> B ----> A 1、在A中 String str = mEditText.getText().toString(); Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("str", str); startActivityForResult(intent , 0);//开启一个界面并等待其返回消息 2、B界面中返回消息 Intent data = new Intent(); data.putExtra("return", string); setResult(0, data ); finish(); 3、A界面接收消息并处理 重写onActivityResult() protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(data != null) { String stringExtra = data.getStringExtra("return"); mTextView.setText(stringExtra); } } requestCode 请求码 用于区分当前界面的不同的请求事件 resultCode 结果码 用于区分返回消息页面的不同返回事件 注意:不要使用魔鬼数字 Activity的生命周期 创建 --- 》 运行 onCreat() -----> onStart() ----> onResume() 运行 ---> 销毁 onPause() ---> onStop() ----> onDestroy() 运行 ----> 暂停(可见不可操作的时候) onPause() 恢复运行状态: onResume() 运行 ----> 停止(不可见可不可操作) onPause() ---》 onStop() 恢复运行: onRestart() ---- 》 onStart() ----》 onResume 注意: 当Activity处于暂停或者停止状态时,如果更高优先级的进程需要内存的话,当前Activity有可能被杀死掉。 内存: 掉电消失 外存 : 理论上数据是可以永久保存 一般在 onPause onStop onDestroy 保存数据(持久化) onCreat onStart onResume 去获取数据恢复到界面上 1、得到数据持久化保存的路径 String path = "/mnt/sdcard/data.txt"; //sdcard的路径 String path = Environment.getExternalStorageDirectory() + "/data.txt"; 2、权限: 需要用到系统服务的话,就要去申请权限 //读写外部存储的权限(sdcard) 3、保存数据(一般是在onStop()) 4、读取数据(一般在 onStart()) FileInputStream fis = null; try { fis = new FileInputStream(path); ByteArrayBuffer arrayBuffer = new ByteArrayBuffer(5000); int len = 0; byte[] buffer = new byte[1024]; while(-1 != (len = fis.read(buffer ))) { arrayBuffer.append(buffer, 0, len); } String str = new String(arrayBuffer.toByteArray(),0,arrayBuffer.length()); mEditText.setText(str); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { if(fis != null) { try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }