<아이디사진>
① legecy > ListView 배치
② 가이드라인-horizontal (90%)
③ plainText 배치
④ button 배치
⑤ id 설정
ListView lv;
ArrayAdapter adapter;
ArrayList<String> list;
Button btnRegister;
EditText edtData;
② 초기화
lv = findViewById(R.id.lv);
list = new ArrayList<String>();
edtData = findViewById(R.id.edtData);
btnRegister = findViewById(R.id.btnRegister);
③ 리스트 추가
list.add("떡복이");
list.add("해물탕");
list.add("간장찜닭");
list.add("김치찜");
list.add("닭볶음탕");
list.add("부대찌개");
list.add("계란후라이");
list.add("버팔로윙");
list.add("딸기생크림케이크");
list.add("김치리조또");
list.add("쫄병스넥");
list.add("초밥");
list.add("연어덮밥");
list.add("콜라");
list.add("사이다");
list.add("환타");
list.add("치즈스틱");
list.add("치즈볼");
④ 어댑터 객체 생성
new ArrayAdapter(현재 액티비티명.this,레이아웃,데이터)
adapter = new ArrayAdapter<String>(
MainActivity.this,
android.R.layout.simple_list_item_1,
list
);
⑤ 어댑터를 리스트 뷰에 넣기
lv.setAdapter(adapter);
아이템 하나하나 개별적으로 적용되어야 하기 때문에
setOnItemClickListener
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// 클릭이 일어난 AdapterView
//view: 클릭한 아이템뷰를 뷰객체로 반환
//i,l 클릭한 아이템뷰의 행 인덱스를 반환
String data = list.get(i);
Toast.makeText(MainActivity.this, "선택한 항목:"+data, Toast.LENGTH_SHORT).show();
}
});
이후 객체 생성,버튼 초기화까지 하세요
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//저장
String food = edtData.getText().toString();
//어딘가에는 저장을 해야하는데?
adapter.add(food);
//디폴트한 데이터를 어댑터 생성할때 넣어지는데
//이후 추가는 추가+갱신(update)한게 필요
//업데이트 한 내용을 갱신해주면서 리스트 뷰에 반환해주는 메소드지만
//지금은 안써도 추가된다네요!
//adapter.notifyDataSetChanged();
//list.add(food) 해도 동작이 되긴합니다.
}
});
//4.롱클릭시 아이템 삭제하는 기능 구현
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "롱클릭!", Toast.LENGTH_SHORT).show();
//어떤 뷰를 선택했느냐에 따라서 지워져야하기 때문에
//우선 리스트로부터 데이터 꺼내와서 삭제할 데이터를 담아주면 삭제 진행된다!
String food = list.get(i);
adapter.remove(food);
return false;
}
});