2017-01-09 4 views
0

У меня есть ListView, отображающий пользовательские виды (3 TextViews за элемент); Я просто реализовал контекстное меню, как например:Получить позицию элемента LongClicked в ListView

// 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 было бы идеально) для того, чтобы изменить или удалить правильный.

Как это может быть достигнуто?

+0

Простой поиск проходит долгий путь: http://stackoverflow.com/a/18632538/1269953 – Pztar

+0

я видел эту тему, я думаю, он пошел над моей головой –

ответ

0
@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); 
    } 
} 
+1

Замечательно, спасибо, я приму ваш ответ как можно скорее. –

Смежные вопросы