activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/edtItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#50000000"
android:textColor="@color/black"
android:text="항목 추가"/>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.lang.reflect.Array;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("리스트뷰 테스트");
//항목을 유기적으로 추가해 줄 것이기 때문에 빈 리스트를 선언한다.
final ArrayList<String> midList=new ArrayList<String>();
//리스트 변수를 생성하고 XML의 <ListView>에 대응시킨다
ListView list = (ListView) findViewById(R.id.listView1);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,midList);
list.setAdapter(adapter);
final EditText edtItem = (EditText) findViewById(R.id.edtItem);
Button btnAdd = (Button)findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
midList.add(edtItem.getText().toString());
adapter.notifyDataSetChanged();
edtItem.setText("");
}
});
//항목을 롱클릭하면 리스트가 삭제되도록 하는 함수
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
midList.remove(position);
adapter.notifyDataSetChanged();
return false;
}
});
}
}
배운 점
자바에서 배열에 삽입할 때는 add 함수를 쓰고 제거할 때는 remove 함수를 쓴다. 그리고 데이터가 변경되었다면 반드시 adapter.notifyDataSetChanged(); 함수를 사용해 adapter에 적용해 줘야 한다는 것을 잊지 말자.
실행 화면
'안드로이드 > 연습' 카테고리의 다른 글
[Android] 가수 그룹 관리 DB 만들기 (0) | 2021.08.29 |
---|---|
[Android] 영화 포스터 보기(GridLayout) (0) | 2021.08.27 |
[Android] 새로운 액티비티 추가하기 (0) | 2021.08.26 |
[Android] 간단 그림판 (0) | 2021.08.26 |
[Android] Graphic (0) | 2021.08.26 |