Android如何获取ListView ID并将其从onListItemClick中使用它?列表视图,通知,SQLite



我有一个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") 作为长变量使用

最新更新