目录
- 集成开发环境
- 布局设计
- 单击事件绑定
- ListView使用
- Activity
- ★启动Activity★
- ★生命周期★
- ★Activity间传数据★
- 本地数据存储
- 文件存储方式
- SharedPreferences
- ★SQLite数据库★
- 广播接收者
- 创建广播接收者
- 发送广播消息
- 服务Service
- 生命周期
- Service本地通信
集成开发环境
AS版本
SDK-API
模拟器
(此部分略)
布局设计
style="@style/样式名"
单击事件绑定
public class LoginActivity extends AppCompatActivity implements View.OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
btn_login = findViewById(R.id.button_login);
btn_login.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId())
{
case R.id.button_login:
//...
break;
}
}
}
ListView使用
绑定:
刷新数据:
courseAdapter.notifyDataSetChanged();
适配器:
填充数据:
Activity
★启动Activity★
启动一个Activity,通常有两种方法:
startActivity( intent )
startActivityForResult( intent, requestCode)
两种方法都需要先设置意图对象intent,用于指定被启动的activity;
但后者不仅要启动这个activity,还要请求对方返回指定的结果,因此参数比前者多一个requestCode参数。
Intent对象的设置可以是显式设置(指定类名setClass),也可以是隐式设置(指定动作名setAction)
关闭当前Activity的方法是finish()
Intent intent=new Intent();
intent.setClass(LoginActivity.this,Activity_name.class);//显式意图
startActivity(intent);
★生命周期★
★Activity间传数据★
发送方:
Intent intent= new Intent( MainActivity.this, SecondActivity.class);
intent.putExtra("name", "Andrea"); //"name" 是键,"Andrea"是值
startActivity(intent);
接收方:
Intent intent= getIntent(); //获取意图
String name= intent.getStringExtra("name"); //读name键中存储的值
本地数据存储
文件存储方式
SharedPreferences
★SQLite数据库★
Android系统提供的SQLiteOpenHelper类,用于创建和管理数据库,通常:
在构造方法中指定数据库文件名和版本,从而创建/打开数据库
在onCreat()方法中添加数据表,包括各表的表名、各字段的相关属性
在onUpgrad()方法中实现数据库版本升级管理流程
增:
删:
查:
改:
开关:
db = helper.getReadableDatabase();
db.close();
广播接收者
创建广播接收者
发送广播消息
sendBroadcast()-- 发送无序广播,不会被拦截;
sendOrderedBroadcast() – 发送有序广播,优先级高的接收者可对其拦截。
两个方法都需用Intent对象封装广播消息:
调用setAction()方法为Intent对象设置action,用于标识这是一条什么广播
调用putExtra()方法向Intent对象存入数据,即广播内容。
服务Service
生命周期
startService() : onCreate()-- onStartCommand()
配套- stopService(): onDestroy()
bindService() : onCreate()-- onBind()
配套- unbindService(): onUnbind()-- OnDestroy()
Service本地通信
Service本地通信:同一个App项目包中的Service组件向绑定的其他组件提供数据读写接口。由此可见,要实现Service通信,前提是用bindService()方法启动Service。
通信的关键是onBind()方法中返回的Bind对象,这个对象将被传递到对方的onServiceConnected()中,从而使对方获得读写Service内部数据的接口。
private ServiceConnection serviceConnection=new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
myBinder=(MyService.MyBinder)service;
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};