0

我将对列表视图使用快速操作。我将此示例用于快速操作: http ://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/

但是我如何从我的 listviewitem 中获取 ID 以在 setOnActionItemClickListener / onItemClick 中使用它?

这里的代码:

ListView mList = (ListView) findViewById(android.R.id.list);
mList.setAdapter(entryAdapter);

//Add action item
ActionItem addAction = new ActionItem();
addAction.setTitle("Add");
addAction.setIcon(getResources().getDrawable(R.drawable.ic_add));

//Show action item
ActionItem accAction = new ActionItem();
accAction.setTitle("Accept");
accAction.setIcon(getResources().getDrawable(R.drawable.ic_accept));

final QuickAction mQuickAction  = new QuickAction(this);

mQuickAction.addActionItem(addAction);
mQuickAction.addActionItem(accAction);


//setup the action item click listener
mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
    public void onItemClick(QuickAction quickAction, int pos, int actionId) {
    if (pos == 0) { //Add item selected
        Toast.makeText(getApplicationContext(), "Add item selected", Toast.LENGTH_SHORT).show();
    } else if (pos == 1) { //Accept item selected
        Toast.makeText(getApplicationContext(), "Accept item selected", Toast.LENGTH_SHORT).show();
    }
     }
});

mList.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    mQuickAction.show(view);
    }
});
4

2 回答 2

1

您可以在 onItemClickListener 中获取 id 和 position 并将其保存在变量中:在 onCreate 之前添加:

int myId;

并将您的 onItemClickListener 更改为此:

mList.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    myId=id;
    mQuickAction.show(view);
    }
});

那么您可以在代码中使用 myId 作为单击项目的 ID。

于 2012-03-25T11:11:48.460 回答
0

当您创建 ListView 时,您必须为它提供一个列表或项目数组以用于显示您的数据。onItemClick 方法为您提供单击的项目的编号。您可以通过查询您的 ListView 支持数据结构以获取此位置的数据,从而准确找出单击了哪个项目。

于 2012-03-25T10:56:04.740 回答