菜鸟求教sqlite空指针...

丿渎灬魂 2011-11-01 04:27:32
logcat 打印:



public static final String TAG = "MessageDB";

// 表名
public static final String TB_NAME = "IMMessage";
// 创建表语句
private static final String CREAT_TABLE = "create table if not EXISTS " + TB_NAME + " (" + UserMessage.ID + " integer primary key AUTOINCREMENT, " + UserMessage.SEND_SCREEN_NAME + " Text," + UserMessage.TO_SCREEN_NAME + " Text," + UserMessage.MESSAGE_CONTENT + " Text," + UserMessage.CREATDATE + " Date," + UserMessage.MSGIDENT + " Text)";

// 数据库名称
private static final String DB_NMAE = "sinawbq.db";
// 当前版本
private static final int DB_VERSION = 1;

/**
* @param context
* @param name
* @param factory
* @param version
*/
public MessageDB(Context context)
{
super(context, DB_NMAE, null, DB_VERSION);
// TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(CREAT_TABLE);
Log.d("DB-----onCreate", "onCreate");
}

/**
* 执行更新 oldVersion 老版本号 newVersio 新版本号 onUpgrade 创建方法
* 在用户执行调用获取用户数据库管理时例就已经执行
*
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);
onCreate(db);
}

@Override
public void onOpen(SQLiteDatabase db)
{
// TODO Auto-generated method stub
super.onOpen(db);
}

}







public class MessageDao
{
private final static String TAG="MessageDao-------------->";



private MessageDB msgdb;
private SQLiteDatabase db;
public MessageDao(Context context)
{
msgdb=new MessageDB(context);
db=msgdb.getWritableDatabase();
}


public void closeAll()
{
db.close();
msgdb.close();
}
/**
* 表中添加记录
* @param um
* @return
*/
public Long addMessage(UserMessage um)
{

ContentValues cv=new ContentValues();
cv.put(UserMessage.SEND_SCREEN_NAME, um.getSend_screen_name());
cv.put(UserMessage.TO_SCREEN_NAME, um.getTo_screen_name());
cv.put(UserMessage.MESSAGE_CONTENT, um.getMessage_content());
cv.put(UserMessage.CREATDATE, um.getCreatDate().toString());
cv.put(UserMessage.MSGIDENT, um.getMsgident());
Long insertMessage=db.insert(MessageDB.TB_NAME, null, cv);
Log.d(TAG, ">----addMessage");
return insertMessage;
}







Context context;

class messageContenListenter implements OnEditorActionListener
{

public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
// TODO Auto-generated method stub
if (actionId == EditorInfo.IME_ACTION_SEND)
{
// 消息唯一标识,0为自己发的消息,1为自己收的消息
String messageContent = message_content.getText().toString();
message_content.setText("");
mDao = new MessageDao(context);
UserMessage um = new UserMessage();
um.setSend_screen_name(fromuserid);
um.setTo_screen_name(touserid);
um.setMessage_content(messageContent);
Date dateNow = new Date(System.currentTimeMillis());
um.setCreatDate(dateNow);
um.setMsgident("0");
mDao.addMessage(um);

Log.d("messageContent-------------->", messageContent);

}
return false;
}

}



错哪了 ?
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
丿渎灬魂 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 b87936260 的回复:]

可能数据库创建失败,去data/data/packages看看有没有
[/Quote]

没有。创建失败了。
代码是我在网上找的,只不过改了字段名啊。
nulls 2011-11-01
  • 打赏
  • 举报
回复
ddms跟踪下
b87936260 2011-11-01
  • 打赏
  • 举报
回复
可能数据库创建失败,去data/data/packages看看有没有
丿渎灬魂 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 l417584711 的回复:]

MessageDao.java
32行
[/Quote]

可以详细说下么 ?
aSysBang 2011-11-01
  • 打赏
  • 举报
回复
MessageDao.java
32行

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧