一 、点击事件的的四种写法
1.)添加内部类实现 OnClickListener 借口
2.)直接给button绑定 一个实现 OnClickListener借口的匿名内部类
3.)activity 实现 OnClickListener借口
4.)在xml文件中用 android:οnclick=“functionName”,绑定方法
二、数值单位比较
px 不论屏幕密度、长度固定
dp 与屏幕密度有关 密度越大代表大长度越大、
sp 专用于文字的单位、缩放不会有锯齿感 大小与dp相同
HVG的屏幕上 px和dp是一比一的
三、sharedPreference使用
//返回的是接口类型的对象
//类似数据库的事务、未commit就停止了、会将put的数据回滚掉
写入
SharedPreference sp = context.getSharedPreference(filename,mode);//mode:文件访问模式 Context.MODE_PRIVATE
Editor editor = sp.edit();
editor.putString(“userName”,“aaaaa”);
editor.commit();
保存在叫filename的xml文件中 是以map数据结构来存储的
存储时特殊字符会自动转义
读取“
SharedPreferences sp = getsharedpreferences(filename,MODE_PRIVATE);
String name= sp.getString(’username‘,”default“);//default 是如果文件中没有 username的键值对 就会给一个默认值default
四 、写文件
String name = "xiewenjian";
File file = new File(Environment.getExternalStorageDirectory(),"config.xml");
FileOutputStream fos = new FileOutputStream(file);
fos.write(name.getBytes());
fos.close();
五、xml 的解析方式
java(dom,sax )
android(pull)
DOM 把xml一次性加载到内存 ,生成一个树状结构 ,在内存中对内容修改 和 添加节点
消耗的内存比较大
sax 基于事件的方式,每触发一个事件写入一次、速度快 效率高、但是事件错过了就不能再次重新写入了
pull 类似sax是基于事件的
六、SQLite操作
PersonSQLiteOpenHelper helper = newPersonSQLiteOpenHelper(context);
Person person = new Person();
SQLiteDatabase db = helper.getWriteabledatabase();
//db.execSQL("insert into tableName(name,sex) values(?,?)",new object[]{name,sex});//插入数据
ContentValues values = new ContentVlaues()l
//values.put("name",name);
//db.insert(tableName,null,calues);
/* 查询数据库所有数据
Cursor cursor = db.rawQuery("select * from talename",null);
while(cursor.moveToNext()){
String name = cursor.getString(cursor.getColumnIndex("name"));
...
}
*/
db.close();
cursor.close();
七、Android sqlite3工具的使用
adb shell
cd data/data/com.android.contacts.provider
cd database
sqlte3 contacts.db //打开数据库contacts
tables//查看所有的表
schema// 查看所有的创建表 视图的语句
八、数据库事务
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
try{
db.execSQL("update person set monry = money - "+money+"where name = ?", new Object[]{from});
db.execSQL("update person set monry = money + "+money+"where name = ?", new Object[]{to});
//标记数据库事务执行成功
db.setTransactionSuccessful();
}catch(Exception ex){
Toast.makeText(mContext, "转账失败", 0);
}finally{
db.endTransaction();
db.close();
}