xml注释:
<!-- 注释内容 -->
不能再标签的属性内部注释,在标签之外。
问题:
在控制台中出现:
You must restart adb and Eclipse
关掉Eclipse以及模拟器并杀死adb.exe这个进程,重新启动
Activity 界面
四大组件之一
三大要素:
1、声明一个类继承Activity
2、关联布局文件(setContentView())
3、必须在清单文件中注册
<activity
android:name = 包名 + 类名/>
在清单文件中配置入口界面
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
界面跳转:
//打开一个界面
// 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)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
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();
}
}
}