三者的交互如下
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层互通
在需要显示内容的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();
…………
安卓原生支持类:
SQLiteOpenHelper:管理数据库SQliteDatabase:接入数据库,为操作类提供类接口Cursor:读写数据 数据库文件存储位置: /data/data/package_name/database路径下有数据库文件夹,其中包含数据库文件和日志文件 SQLite数据库没有用户名密码,通过文件读写权限进行操作
