我想在android中编写一个代码,当我在我的数据库中插入一行(触发器)时(sqlite) 我做了一个动作 我该怎么办?
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
this.connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
String message2;
Message message = (Message) packet;
if (message.getBody() != null) {
message2=message.getBody();
String fromName = StringUtils.parseBareAddress(message
.getFrom());
////////////////////////////////////
SQLiteDatabase checkDB = null;
try{
ContextWrapper cw =new ContextWrapper(thisact);
String path =cw.getFilesDir().getAbsolutePath()+ "/electronic.db3";
checkDB = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE) ;
String[] partsss = message.getBody().split("/");
//if message from server is setting
ContentValues values = new ContentValues();
values.put("message", message.getBody());
values.put("do",0);
checkDB.insert("Messages",null ,values);
}
这是我的代码,它就像聊天代码,我希望当收到一条消息并插入数据库时,我会在另一个类中执行操作。
实际上我想要一个用于插入数据库的监听器。
答案 0 :(得分:0)
假设这是您将学生记录插入SQLite数据库的代码:
public void insertRecord(HashMap<String, String> queryValues) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Name", queryValues.get("name"));
database.insert("student", null, values);
Toast.makeText(getApplicationContext(),
"Record inserted", Toast.LENGTH_LONG).show(); //<-You can place it here
database.close();
}
根据您关于应该做什么的其他问题,这一切都取决于您的应用程序的设计。例如,在我的学生应用程序中,在将记录插入数据库后,我可以显示插入了此新记录的学生列表
答案 1 :(得分:0)
只需将Toast消息的代码放在insert方法(您插入新数据的位置)中。
由于数据库处理程序未指向活动/上下文,因此您必须在创建DbHandler对象时传递父类的上下文。 如下所示:
Dbhandler dbHandler = new Dbhandler(getApplicationContext());
并在dbHandler类中创建如下构造函数:
public Dbhandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
c = context;
}
然后toast消息应声明为:
Toast.makeText(c,"data has been inserted! ",Toast.LENGTH_LONG).show();
这里是第一个参数&#34; c&#34;是我们传递给构造函数的上下文。