我有一个ListView,它填充了SQLite数据库中的笔记。以下代码的效果是,当用户从 ListView 中选择任何项时,应用程序将访问 NoteEdit.class其中包含数据。我把这段代码放在这里的原因是为了证明我的数据库创建是正常的。
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent i = new Intent(this, NoteEdit.class);
i.putExtra(NoteDbAdapter.KEY_ROWID, id);
startActivityForResult(i, ACTIVITY_EDIT);
}
现在我有一个通知,它将注释(即列表视图中的项目)粘贴到通知栏。通知和简笔也很好。但问题是,当我单击通知项时,它应该将用户带到 EditNote.class其中包含数据,这是通知中的代码:
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case STICKY_NOTIFICATION:
String getTitle = "",
getBodyText = "";
AdapterContextMenuInfo notice = (AdapterContextMenuInfo) item
.getMenuInfo();
Cursor c = mDbHelper.fetchNote(notice.id);
if (c.moveToFirst()) {
do {
getTitle = c.getString(1);
getBodyText = c.getString(2);
} while (c.moveToNext());
}
//Intent resultIntent = new Intent(this, NoteEdit.class);
//resultIntent.putExtra(NoteDbAdapter.KEY_ROWID, ); //This is where the issue is
//startActivityForResult(resultIntent, ACTIVITY_EDIT);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(NoteEdit.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPending = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(getTitle).setContentText(getBodyText)
.setContentIntent(resultPending);
NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) this
.getApplicationContext().getSystemService(
Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(10, mBuilder.build());
break;
我需要像"id"这样的东西来定位和放置数据库中的数据,例如onListItemClick "i.putExtra(NoteDbAdapter.KEY_ROWID,id);"中的那个。我该如何实现它?
do
intent.putExtra("truck", id)
使用OnHandleIntent 方法在另一个类中使用传递的 intent 并使用 .getExtras().getLong("truck") 作为长变量使用