热门IT资讯网

Android初级第二次小结

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,xml注释:不能再标签的属性内部注释,在标签之外。问题:在控制台中出现:You must restart adb and Eclipse关掉Eclipse以及模拟器并杀死ad

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();

}

}

}


0