본문 바로가기
안드로이드 자바

[JAVA][Android]항목 선택 다이얼로그 만들기

by teamnova 2024. 7. 27.
728x90

오늘은 배열과 AlertDialog.Builder를 활용해 항목 선택 다이얼로그를 만들어 보겠습니다.

 

 

레이아웃 xml 파일 코드(activity_main.xml)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="16dp">

    <TextView
        android:id="@+id/itemTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text="선택한 항목이 여기에 표시됩니다." />

    <Button
        android:id="@+id/showDialogButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="목록 보기" />
</LinearLayout>

 

 

 

액티비티 자바 코드

public class MainActivity extends AppCompatActivity {

    private TextView itemTextView; //선택한 항목을 표시할 텍스트뷰
    private Button showDialogButton; //다이얼로그 띄우기 버튼
    private AlertDialog ListDialog; //목록을 보여줄 다이얼로그
    String[] strArray={"강아지","고양이","거북이","토끼","뱀","사자","호랑이","표범","치타","하이에나","기린","코끼리","코뿔소","하마","악어"};
    //다이얼로그의 목록에 보여줄 항목 데이터
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        itemTextView = findViewById(R.id.itemTextView);
        showDialogButton = findViewById(R.id.showDialogButton);


        //버튼을 누를시 다이얼로그가 보이도록 설정합니다
        showDialogButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showListDialog();
            }
        });

        //다이얼로그를 생성합니다
        createListDialog();
    }

    private void createListDialog() { // 다이얼로그를 생성하는 메서드 입니다
        //다이얼로그 빌더를 생성합니다.
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        //빌더에 보여줄 목록 정보와 항목을 눌렸을시 처리할 이벤트를 설정합니다
        builder.setItems(strArray, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //항목을 눌렸을시 텍스트뷰에 해당 항목이 표시됩니다
                itemTextView.setText(strArray[i]);
            }
        });

        // 빌더에 목록 선택 안하고 닫기 위한 버튼을 추가 합니다.
        builder.setNegativeButton("닫기", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });


        //빌더에 설정한 정보대로 다이얼로그를 생성합니다
        ListDialog = builder.create();
    }

    private void showListDialog() { //다이얼로그를 보여주는 메서드입니다
        if (ListDialog != null) {
            ListDialog.show();
        }
    }
}

 

 

 

 

 

 

실행 영상

 

 

목록에서 선택한 항목이 화면에 표시되는 것을 확인할 수 있습니다.