【问题标题】:Get position of the item LongClicked in a ListView获取 ListView 中 LongClicked 项的位置
【发布时间】:2017-01-09 23:37:27
【问题描述】:

我有一个 ListView 显示自定义视图(每个项目 3 个 TextViews);我刚刚实现了一个这样的上下文菜单:

// in onCreateView
ListView list = (ListView) view.findViewById(R.id.list);

registerForContextMenu(list);

和

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    if (v.getId() == R.id.list) {
        MenuInflater inflater = getActivity().getMenuInflater();
        inflater.inflate(R.menu.todo_context_menu, menu);
    }
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.edit:
            // your first action code
            return true;
        case R.id.delete:
            // your second action code
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

我想知道哪个项目被长按(它在ListView 中的位置是理想的)以便编辑或删除正确的项目。

如何实现?

【问题讨论】:

标签: android listview


【解决方案1】:
@Override
public boolean onContextItemSelected(MenuItem item) {

   AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
   int index = info.position;

  switch (item.getItemId()) {
    case R.id.edit:
        // your first action code
        return true;
    case R.id.delete:
        // your second action code
        return true;
    default:
        return super.onContextItemSelected(item);
  }
}

【讨论】:

  • 太好了,谢谢你,我会尽快接受你的回答。
猜你喜欢
  • 2015-05-18
  • 2021-03-10
  • 2017-01-04
  • 1970-01-01
  • 2013-09-28
  • 2015-02-16
  • 2014-09-08
  • 2016-08-04
  • 1970-01-01
相关资源
最近更新 更多