티스토리 뷰

리스트뷰 아이템 길게 누르면 선택

setOnItemLongClickListener() 사용

  • 화면에 표시된 리스트 목록 내 아이템을 길게 클릭하면 토스트 메시지가 출력됨
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
	@Override
	public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(getApplicationContext(), list[position]+" 클릭", Toast.LENGTH_LONG).show();
        return true; // Long Click 처리 완료
	}
});

 


리스트뷰 삭제

MainActivity.java

  • LinkedList 변수 = new LinkedList(): 연결리스트 생성
  • Arrays.asList(): 배열을 리스트(List) 형태로 변환
  • list.remove(i): 리스트 아이템 삭제
  • a.notifyDataSetChanged(): 데이터 변경이 뷰에 반영되도록 알림
package com.example.test;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Arrays;
import java.util.LinkedList;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        String location[]={"부산", "창원", "울산", "진주", "Pusan", "마산", "거제"};
        LinkedList list = new LinkedList();

        list.addAll(Arrays.asList(location));

        ListView l = new ListView(this);
        l.setPadding(30,30,30,30);

        ArrayAdapter a = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);
        l.setAdapter(a);

        l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(), adapterView.getItemAtPosition(i)+"", Toast.LENGTH_SHORT).show();
            }
        });

        l.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this, adapterView.getItemAtPosition(i)+" 삭제됨", Toast.LENGTH_SHORT).show();
                list.remove(i);
                a.notifyDataSetChanged();
                return true;
            }
        });

        setContentView(l);
    }
}

실행 화면

공지사항
링크