본문으로 건너뛰기

recyclerview-with-edittext

RecyclerViewWithEditText in Android Studio

이 글은 기존 블로그의 원문에서 가져왔습니다. 원문 작성일: 2021-08-02

RecyclerViewWithEditText

recyclerView in Android Studio

위 링크의 페이지에서 만든 recyclerView에서는 정해져 있는 내용만 띄울 수 있었기 때문에 이번에 EditText를 이용해서 입력한 내용을 recyclerView에 띄울 수 있도록 했다.

1 activity_main.xml로 토대 만들기

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            ...
 
    <androidx.recyclerview.widget.RecyclerView
            ...
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <LinearLayout
            android:layout_width="10dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/et_1"
                android:hint="name"/>
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="content"
                android:id="@+id/et_2"/>
        </LinearLayout>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/btn_add"
            android:text="추가"/>
    </LinearLayout>
</LinearLayout>

위와 같이 LinearLayout들을 활용해서 밑의 사진과 같이 위젯들을 배치했다.

2 MainActivity.java에 코드 추가하기

위 링크 페이지에서 버튼을 누르면 미리 만들어놨던 MainData class의 형태로 recyclerView에 item으로 띄울 정보들을 저장한 후 arrayList에 저장해서 adapter에 전달했다. 그렇기 때문에 MainData형태로 정보를 저장하는 부분에서

((EditText)findViewById(R.id.et_1)).getText().toString()을 이용해서

밑의 코드와 같이 버튼을 눌렀을 때 이벤트를 만들어줬다.

btn_add.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        MainData mainData = new MainData(R.mipmap.ic_launcher, et_1.getText().toString(), et_2.getText().toString());
        arrayList.add(mainData);
        mainAdapter.notifyDataSetChanged();
    }
});

3 결과

그렇게 하면 밑의 사진과 같이 원하는 정보들을 recyclerView에 저장할 수 있다.