2021/01/05 - [안드로이드] - [안드로이드] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법
이번 시간에는 다이얼로그박스 내용을 체크박스 형태로 보여주는 예제를 만들어 보겠습니다.
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)
다이얼로그(Dialog)에서 체크박스를 사용하려면
setMultiChoiceItems 메소드를 이용하면 됩니다.
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity{
Button btn_dialog;
List<String> mSelectedItems;
AlertDialog.Builder builder;
@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(){
mSelectedItems = new ArrayList<>();
builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("색상을 선택하세요");
//클릭이벤트
builder.setMultiChoiceItems(R.array.colors, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//데이터 리스트 담기
String[] items = getResources().getStringArray(R.array.colors);
//선택된 아이템 담기
if(isChecked){
mSelectedItems.add(items[which]);
}else if(mSelectedItems.contains(items[which])){
mSelectedItems.remove(items[which]);
}
}
});
//OK이벤트
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String final_selection = "";
for(String item : mSelectedItems){
final_selection = final_selection + "\n " + item;
}
Toast.makeText(getApplicationContext(), "선택된 아이템은" + final_selection , Toast.LENGTH_SHORT).show();
}
});
//취소 이벤트
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
}
4. 실행화면
[안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener) (0) | 2021.01.08 |
---|---|
[안드로이드] 다이얼로그(Dialog) 사용자정의 (Custom) 화면으로 보여주기 (0) | 2021.01.07 |
[안드로이드] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법 (0) | 2021.01.05 |
[안드로이드]알림(Snackbar) 글씨색, 배경색 변경하기 (0) | 2021.01.04 |
[안드로이드] 알림(Snackbar) 생성및 취소기능 만들어보기 (0) | 2021.01.03 |
댓글 영역