Android中的MVC
- Model:Java bean
- View:xml布局的视图
- Controller:Activity
三者的交互如下
- Contreller:在view发生事件时使用监听器模式获得view的控制交互;Model发生变化时使用观察者模式通知Controller,其实现onChanged()方法决定具体动作。
- view和model之间不能调用。
动态加载内容到布局
相关:实现onItemClick监听器
OnItemClickListener itemListener =
new OnItemClickListener(){
@Override
public void onItemClick(Adapter<?> listView,//被点击的listview
View itemview,//被点击的item
int position,//被点击的位置
long id){//id为数据源中索引
if(position == 0){
.....
}
}
}
四个参数中后两个参数数据大多时候相同,position是适配器第几个加载item,id是其在列表中的位置,和listview中的位置相同。
数据源本不能直接和视图层互通,这违反MVC模式的原则。
适配器的作用意在适度打破这种原则,在activity的掌控之下使模型层和view层互通
1. ArrayAdapter
在需要显示内容的activity中编写如下代码
//在onCreate()方法内:
ArrayAdapter<Type> listAdapter = new ArrayAdapter<>(
//上下文,内建布局资源,数据源(array)
this,android.R.layout.simple_list_item_1,Drink.drinks);
//绑定适配器
ListView listView = findViewById(R.id.list_drinks);
listDrinks.setAdapter(listAdapter);
其中,适配器执行过程是调用数据源的toString()方法,需要返回指定数据的需要重写toString();
…………
SQLite
安卓原生支持类:
- SQLiteOpenHelper:管理数据库
- SQliteDatabase:接入数据库,为操作类提供类接口
- Cursor:读写数据
数据库文件存储位置:
/data/data/package_name/database
路径下有数据库文件夹,其中包含数据库文件和日志文件
SQLite数据库没有用户名密码,通过文件读写权限进行操作