728x90
안녕하세요.
오늘은 아주 간단하게 안드로이드에서 할 일 목록을 만드는 방법에 대해 알아보겠습니다!
먼저 리스트뷰에 들어갈 아이템 레이아웃을 만들어줍니다.
todolist_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="20dp"
android:text="textView"
android:textSize="20dp"
android:textStyle="bold">
</TextView>
다음으로 액티비티 화면 레이아웃을 만들어줍니다.
todolist.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/bottom_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:padding="10dp">
<EditText
android:id="@+id/edit_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:textSize="17dp"
android:layout_weight="1" />
<Button
android:id="@+id/add_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17dp"
android:text="추가" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom_section"
android:background="#eee">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
1. 하단 EditText에 할 일을 적은 후 추가 버튼을 누릅니다.
2. 리스트뷰에 추가된 할 일을 목록 형태로 보여줍니다.
다음으로 자바 파일입니다.
TodoList.java
import android.graphics.Paint;
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.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class TodoList extends AppCompatActivity {
ArrayList<String> toDoList;
ArrayAdapter<String> adapter;
ListView listView;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.todolist);
//초기화
toDoList = new ArrayList<>();
adapter = new ArrayAdapter<String>(this, R.layout.todolist_item, toDoList);
listView = findViewById(R.id.list_view);
editText = findViewById(R.id.edit_text);
//어뎁터 적용
listView.setAdapter(adapter);
//할일추가 버튼 이벤트
Button addBtn = findViewById(R.id.add_btn);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addItemToList();
}
});
//리스트 아이템 클릭 했을때 이벤트
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
TextView textView = (TextView) view;
//취소선 넣기
textView.setPaintFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
}
});
}//onCreate
//할일 추가
public void addItemToList(){
//아이템 등록
toDoList.add(editText.getText().toString());
//적용
adapter.notifyDataSetChanged();;
//입력창 초기화
editText.setText("");
}
}//TodoList.java
코드의 흐름은 다음과 같습니다.
1. 할일을 ArrayList에 등록합니다.
2. 어뎁터는 리스트뷰에 적용이 되어, 할일을 등록하면 자동으로 화면에 할 일을 보여줍니다.
3. 리스트뷰의 아이템을 클릭하면, 취소 줄(완료 표시)이 생깁니다.
실행화면 입니다.
오늘 준비한 내용은 여기까지 입니다.
궁금한 점은 언제든 댓글로 남겨주세요.
감사합니다!
'안드로이드 자바' 카테고리의 다른 글
[Android][JAVA] 카메라 연결 및 화면에 비디오 출력하기 (0) | 2023.03.02 |
---|---|
[Android][Java] textview로 만든 메뉴 선택 효과 따라하기 (0) | 2023.03.01 |
[Android][JAVA] overridePendingTransition 을 이용한 액티비티 전환 애니메이션 설정 (0) | 2023.02.27 |
[Android][Java] PickView 라이브러리 사용하기 (0) | 2023.02.22 |
[Android][JAVA] RecyclerView Decoration으로 Indicator 구현하기 (0) | 2023.02.18 |