Как я могу долго выбирать элементы в ListView, чтобы удалить их?

Просто пытаюсь создать простое приложение, которое позволяло бы пользователям вводить заметки и сохранять их в виде списка. Какой код мне нужно реализовать, чтобы пользователь мог долго нажимать что-то в списке, чтобы удалить его.

public class Notes extends AppCompatActivity {

Button save;
ArrayList<String> addArray = new ArrayList<String>();
EditText txt;
ListView show;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notes);

    txt = (EditText) findViewById(R.id.textInput);
    show = (ListView) findViewById(R.id.listView);
    save = (Button) findViewById(R.id.saveButton);

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(Notes.this, android.R.layout.simple_list_item_1, addArray);

    save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String getInput = txt.getText().toString();

            if (addArray.contains(getInput)) {
                Toast.makeText(getBaseContext(), "Note already added!", Toast.LENGTH_LONG).show();
            } else if (getInput == null || getInput.trim().equals("")) {
                Toast.makeText(getBaseContext(), "Input required!", Toast.LENGTH_LONG).show();
            } else {
                addArray.add(getInput);

                show.setAdapter(adapter);
                ((EditText) findViewById(R.id.textInput)).setText(" ");
            }
        }
    });


    show.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {

            return true;
        }
    });
}

}


person Mike    schedule 24.03.2016    source источник
comment
Возможный дубликат Custom ListView и контекстного меню. Как его получить?   -  person Arun Shankar    schedule 24.03.2016
comment
Вы проверили мой ответ?   -  person Arun Shankar    schedule 25.03.2016


Ответы (2)


Это может решить вашу проблему:

addArray.remove(pos);
adapter.notifyOnDataSetChanged();
person gkanellis    schedule 24.03.2016

Вы можете использовать контекстные меню или режим контекстных действий.

Пройдите это руководство: http://developer.android.com/guide/topics/ui/menus.html#context-menu.

Затем вы можете удалить элемент из адаптера и уведомить о потере просмотра с помощью метода адаптеров Notifydatasetchanged.

person Arun Shankar    schedule 24.03.2016