상세 컨텐츠

본문 제목

[안드로이드] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법

안드로이드

by aries574 2021. 1. 5. 13:52

본문


 

 

2020/12/03 - [안드로이드] - [안드로이드] 뒤로가기 다이얼로그창으로 나가기

 

이번 시간에는 다이얼로그박스에 리스트형식으로 보여주는 예제를 만들어 보겠습니다. 

 

1. 메인화면 구현(activity_main.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:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <Button
        android:id="@+id/btn_dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="다이얼로그" />

</RelativeLayout>

 

 

2. 리스트 데이터 만들기(res-> values -> string.xml)

<resources>
    <string name="app_name">Dialog</string>

    <string-array name="colors">
        <item>Red</item>
        <item>Blue</item>
        <item>Green</item>
    </string-array>
</resources>

 

3. 메인코드 구현(Mainactivity.java)

builder.setItem 을 통해 리스트를 담고 클릭이벤트를 적용해서 해당 아이템을 클릭하면 알림이 실행되게 만들었습니다.

public class MainActivity extends AppCompatActivity{

    Button btn_dialog;

    AlertDialog.Builder builder;

    String[] colors;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_dialog    = findViewById(R.id.btn_dialog);

        btn_dialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog();
            }
        });
    }

    //다이얼로그 실행
    public void showDialog(){

        colors = getResources().getStringArray(R.array.colors);

        builder = new AlertDialog.Builder(MainActivity.this);

        builder.setTitle("색깔을 선택하세요");

        //다이얼로그에 리스트 담기
        builder.setItems(colors, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "선택된 색깔은" + colors[which], Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }
}

 

4. 실행화면

 

 

 

반응형

관련글 더보기

댓글 영역