2016-12-12 10 views
0

Я отчасти новичок в Android, так как я сделал только некоторые базовые приложения, но я больше знаком с Java. Я работаю над приложением, которое должно обеспечить LoginActivity с двумя атрибутами, которые генерируют один Pair соединения (IP адрес и порта) в верхней части экрана и ListView всех уже известных соединений (которые иногда использовались раньше) прямо под кнопкой «Подключиться».Выполнение действий (добавление/редактирование/удаление) элементов ListView

Snippet

Мой вопрос, как реализовать некоторые действия, такие как добавлять/редактировать/удалять и т.д. при проведении на палец немного длиннее на определенный элемент в ListView? Как сделать некоторое меню для изменение/удаление уже известных соединений?

Вот код, который я уже получил для ListView:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    if (v.getId()==R.id.list_view) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_list, menu); 
    } 
} 

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
    switch(item.getItemId()) { 
     case R.id.edit: 
      //implement here 
      return true; 
     case R.id.delete: 
      //implement here 
     default: 
      return super.onContextItemSelected(item); 
    } 
} 
+0

Как использовать ContextMenu, безусловно, является допустимым вариантом, он немного устарел, на мой взгляд. Я бы рекомендовал сделать макет с тремя кнопками и наложить его на элемент, выбранный с помощью longclick, или использовать что-то вроде [этой библиотеки] (https://github.com/AAkira/ExpandableLayout), чтобы развернуть этот макет ниже. Это всего лишь предложение, ContextMenu по-прежнему является вариантом. –

ответ

0

Может быть, вы забыли зарегистрировать контекстное меню для ListView?

registerForContextMenu(lv); 

EDIT

хорошо, теперь я понимаю. Возможно, это поможет:

case R.id.delete: 

    int index = info.position; 
    listView.remove(index); 
    listViewAdapter.notifyDataSetChanged(); 
+0

Я думаю, что вы не поняли, я уже это сделал, но интересны строки «// реализовать здесь» –

+0

Спасибо за ваше время, но я уже знаю процедуру удаления, я спрашиваю как сделать окно с действием EDIT –

+0

В R.id.edit просто создайте AlertDialog с настраиваемым макетом http://stackoverflow.com/questions/22655599/alertdialog-builder-with-custom-layout-and-edittext-cannot-access- view – lesniak

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

  • Нет связанных вопросов^_^