我用自己的手机做的模拟器,平时使用都不存在问题。
刚刚在使用一个存储文件的APP的时候,我发现我无法找到该文件。
无论是通过手机,还是通过eclipse上的File Explorer用手机无法找到我还是可以理解的。
因为我手机是HTC G9。
平时就没办法看到系统自带内存里的文件。只能用ES文件浏览器查看SD卡的相关文件。但是通过File Explorer,我也没办法找到文件和对应的应用所在位置,这让我很纠结。因为如果布置到模拟器上,就可以看到。
刚刚在使用一个存储文件的APP的时候,我发现我无法找到该文件。
无论是通过手机,还是通过eclipse上的File Explorer用手机无法找到我还是可以理解的。
因为我手机是HTC G9。
平时就没办法看到系统自带内存里的文件。只能用ES文件浏览器查看SD卡的相关文件。但是通过File Explorer,我也没办法找到文件和对应的应用所在位置,这让我很纠结。因为如果布置到模拟器上,就可以看到。
解决方案 »
- adb connect时出错,怎么解决?
- 关于在Logcat中显示System.out
- android 如何实现 点击按钮 使屏幕旋转?
- 有关startActivityForResult()和onActivityResult()之疑惑?
- NDK环境,如何从多个静态库生成一个动态库?
- android 源码编译失败
- 会一些基础的android开发技术,想做某个论坛的第三方安卓客户端应用,还需要了解些什么?
- gridlayout子元素默认靠左显示
- 超郁闷的问题,android 调用php服务器端Json出错
- 刚刚敲了个Android小代码,就是在布局中添加新的布局,可是不知道哪里出错了,求大神帮忙看看
- 谁有《大话企业级Android应用开发实战》(王家林)第六章的代码?发到我:一丝一一二八五灵司令QQ邮箱
- Spinner 不响应setOnItemSelectedListener事件
{
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.execSQL("insert into person(name,phone) values (?,?)", new Object[] { p.getName(), p.getPhone() });
db.close();
}public void save(Person p)
{
SQLiteDatabase db = dbHelper.getWritableDatabase(); // 取得数据库操作实例
ContentValues values = new ContentValues();
values.put("name", p.getName());
values.put("phone", p.getPhone());
db.insert("person", "name", values);
db.close();
}这两种方法可读性都比较好,但我们注意到db.insert("person", "name", values);操作中有一个name字段是什么意思呢?
二、解决问题insert的一种构造方法public long insert (String table, String nullColumnHack, ContentValues values) table要插入数据的表的名称 valuesContentValues对象,类似一个map通过键值对的形式存储值。 nullColumnHack当values参数为空或者里面没有内容的时候,insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,要在这里指定一个列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入。通过观察源码的insertWithOnConflict方法可以看到当ContentValues类型的数据initialValues为null或size<=0时,就会在sql语句中添加nullColumnHack的设置。若不添加nullColumnHack则sql语句最终的结果将会类似insert into tableName()values();这是不允许的。若添加上nullColumnHack则sql语句将会变成insert into tableName (nullColumnHack)values(null);这是可以的。