Android 如何从上下文菜单中获取文本?

Android 如何从上下文菜单中获取文本?,android,Android,我有一个列表活动,其中有一个姓名列表(Jacob、Will、Matt等)。我有一个上下文菜单,用户可以选择编辑或删除此人。我知道如何找到id来执行编辑和删除功能,但我不知道如何将此人的姓名添加到intent extras中,或者在发生删除时添加toast 下面是我用于上下文菜单的代码片段: @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (Adap

我有一个列表活动,其中有一个姓名列表(Jacob、Will、Matt等)。我有一个上下文菜单,用户可以选择编辑或删除此人。我知道如何找到id来执行编辑和删除功能,但我不知道如何将此人的姓名添加到intent extras中,或者在发生删除时添加toast

下面是我用于上下文菜单的代码片段:


@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

    switch(item.getItemId()) {
    case DELETE_ID:
        mDbHelper.deletePerson(info.id);
        fillData();
        return true;
    case EDIT_ID:
        Cursor c = mCursor;
        c.moveToPosition(info.position);
        Intent i = new Intent(this, PersonEdit.class);
        i.putExtra("_id", info.id);
        startActivityForResult(i, ACTIVITY_EDIT);
        return true;
    }
    return super.onContextItemSelected(item);
}

从我的代码复制粘贴:

AdapterView.AdapterContextMenuInfo info;

try {
    info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
    Log.e(TAG, "bad menuInfo", e);
    // Do something here.
}

Person person = (Person) getListAdapter().getItem(info.position);

getListAdapter()
用于扩展自
ListActivity
的活动。如果不使用,请获取
列表视图
,然后获取适配器。

谢谢。不知何故,我无意中找到了我自己问题的答案。它似乎工作正常


@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

    Cursor c = mCursor;
    c.moveToPosition(info.position);
    Long id = info.id;
    String person = mCursor.getString(c.getColumnIndexOrThrow("person"));

    switch(item.getItemId()) {
    case DELETE_ID:
        Toast.makeText(People.this, person + " has been deleted.", Toast.LENGTH_SHORT).show();
        mDbHelper.deletePerson(id);
        fillData();
        return true;
    case EDIT_ID:
        Intent i = new Intent(this, PersonEdit.class);
        i.putExtra("_id", id);
        i.putExtra("person", person);
        startActivityForResult(i, ACTIVITY_EDIT);
        return true;
    }
    return super.onContextItemSelected(item);
}

谢谢你的快速回复。我仍然缺少一些东西。我正在用SQLite查询填充列表适配器。我没有要实例化的person对象。我的EDIT_ID功能的前几行显示了我试图从SQLite数据库中获取此人的姓名。我知道我错过了很多。