android笔记 零碎知识点

来源:互联网 发布:apache hadoop社区 编辑:程序博客网 时间:2024/05/16 18:21

一  、点击事件的的四种写法 

1.)添加内部类实现 OnClickListener 借口

2.)直接给button绑定 一个实现 OnClickListener借口的匿名内部类

3.)activity 实现 OnClickListener借口

4.)在xml文件中用  android:onclick=“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数据结构来存储的

存储时特殊字符会自动转义

<map>

<string name=“userName”>aaaaa</string>

<int name="pass" value=”1111“>

<boolean name="isOk" value="true">

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

0 0