查询数据库,获得数据,放入一个User的Bean中,我确定Bean里面有值,因为用StringvalueOf()函数取里面的值的时候可以得到要的数,但是直接用里面的值的时候就报空指针错误。
//查询数据库
user=new User();
DBHelper dbhelper=new DBHelper(this);
SQLiteDatabase db=dbhelper.getReadableDatabase();
Cursor cursor=db.query("persons",
new String[]{"birthday","name","luck_number","sex","id"},
null, null, null, null, null);
cursor.moveToFirst();
user.setBirthday(cursor.getInt(cursor.getColumnIndex("birthday")));
user.setName(cursor.getString(cursor.getColumnIndex("name")));
user.setLuck_number(cursor.getInt(cursor.getColumnIndex("luck_number")));
user.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
user.setId(cursor.getInt(cursor.getColumnIndex("id")));
cursor.close();
EditText luck_color=( EditText)findViewById(R.id.luck_color);
luck_color.setText(String.valueOf(user.getBirthday()));
// 这样使用就会有空指针错误 luck_color.setText(user.getBirthday());
//还有, 这个 语句也有空指针错误 :int luck_number=user.getLuck_number();
//查询数据库
user=new User();
DBHelper dbhelper=new DBHelper(this);
SQLiteDatabase db=dbhelper.getReadableDatabase();
Cursor cursor=db.query("persons",
new String[]{"birthday","name","luck_number","sex","id"},
null, null, null, null, null);
cursor.moveToFirst();
user.setBirthday(cursor.getInt(cursor.getColumnIndex("birthday")));
user.setName(cursor.getString(cursor.getColumnIndex("name")));
user.setLuck_number(cursor.getInt(cursor.getColumnIndex("luck_number")));
user.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
user.setId(cursor.getInt(cursor.getColumnIndex("id")));
cursor.close();
EditText luck_color=( EditText)findViewById(R.id.luck_color);
luck_color.setText(String.valueOf(user.getBirthday()));
// 这样使用就会有空指针错误 luck_color.setText(user.getBirthday());
//还有, 这个 语句也有空指针错误 :int luck_number=user.getLuck_number();
解决方案 »
- 【100分】关于人生决择。。。关于安卓和IOS。。。
- 在htc手机上AudioRecord与AudioTrack冲突了
- 有关startActivityForResult()和onActivityResult()之疑惑?
- 安卓模拟器不能启动??求指导
- android可以自定义发短信界面吗
- android 音量键声音及按住响应
- 请问,socket服务器应该怎么配置?
- Android ADT命令
- Android LayoutTransition.CHANGE_DISAPPEARING问题
- android studio中所有java方法都突然报错
- 关于新浪微博请求问题
- Android SD卡升级如何判断升级包和当前版本的版本号?
cursor.moveToFirst();
最好多点判断语句,这样出现查找不到的情况也可以避免。while(cursor!=null){
cursor.moveToFirst();
//这句可以看到底查找到没有,count可以看到共查找到几条数据。
if(cursor.getCount!=0){
}
else{}
}还有 如果查找的是中文字符,读取中文字符的时候可能因为编码问题导致读取不到。。贴一段以前读中文字符的代码 int number22=cur4.getColumnIndex(KEY_AREA);
byte bytes[]=cur4.getBlob(number22);
try {
//将其转化为gb2312编码方式
str6= new String (bytes,"gb2312").trim();
}
catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
查这个方法就行了
luck_color.setText(String.valueOf(user.getBirthday()));
这两句按说没什么区别,就是一个字符串的转换!!user.getBirthday() 返回神马类型??