안드로이드 스튜디오 대화상자(dialog) 사용하기
- Android Studio
- 2019. 12. 3.
안녕하세요 오늘은 대화 상자(dialog)를 사용해서
화면에 메시지를 나타낸 후 확인이나 취소 같은
사용자의 선택을 받아들이는 예제를 해보겠습니다.
보통 다이얼로그는 토스트 메시지보다 좀 더 강력한 메시지를 보낼 때 사용합니다.
주로 사용자에게 중요한 사항을 알려준 후,
사용자가 다시 어떤 선택을 하게 하는 게 목적입니다
그래서 다이얼로그가 뜨면 사용자가 계속 진행할지 여부를 선택하게 할 때 사용합니다.
다이얼로그 중에 커스텀 다이얼로그도 있는데
오늘은 보통사용하는 AlertDialog를 사용하겠습니다.
일단 activity_main에 버튼 하나를 만들어 줍니다.
<LinearLayout 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"
android:orientation="vertical"
android:gravity="center_horizontal"
tools:context=".MainActivity">
<Button
android:id="@+id/button1"
android:text="대화상자"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
이렇게 코드를 입력하면 버튼 하나가 생성이 됩니다.
이제 이 버튼을 누르면 대화상자가 뜰 수 있게 자바 코드를 입력해 줍니다.
1. 기본대화상자
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("계발에서 개발까지"); //제목
dlg.setMessage("안녕하세요 계발에서 개발까지 입니다."); // 메시지
dlg.setIcon(R.drawable.deum); // 아이콘 설정
// 버튼 클릭시 동작
dlg.setPositiveButton("확인",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
//토스트 메시지
Toast.makeText(MainActivity.this,"확인을 눌르셨습니다.",Toast.LENGTH_SHORT).show();
}
});
dlg.show();
}
});
}
}
밑에는 실행 결과입니다.
2. 목록 대화 상자
밑에는 목록 대화 상자를 활용할 자바 소스입니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("계발에서 개발까지"); //제목
final String[] versionArray = new String[] {"계발","에서","개발"};
dlg.setIcon(R.drawable.deum); // 아이콘 설정
dlg.setItems(versionArray, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
button1.setText(versionArray[which]);
}
});
// 버튼 클릭시 동작
dlg.setPositiveButton("확인",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
//토스트 메시지
Toast.makeText(MainActivity.this,"확인을 눌르셨습니다.",Toast.LENGTH_SHORT).show();
}
});
dlg.show();
}
});
}
}
이렇게 실행을 하면 대화 상자에 입력한 목록이 생기며
목록 클릭 시 버튼이 바뀌는 걸 알 수 있습니다.
3. 라디오 버튼 대화목록 상자
라디오 버튼 목록 상자를 사용하면 목록을 선택해도 대화 상자가 사라지지 않으며 목록 선택 후
확인을 눌러야만 대화 상자가 사라지며 버튼이 바뀝니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("계발에서 개발까지"); //제목
final String[] versionArray = new String[] {"계발","에서","개발"};
dlg.setIcon(R.drawable.deum); // 아이콘 설정
dlg.setSingleChoiceItems(versionArray, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
button1.setText(versionArray[which]);
}
});
// 버튼 클릭시 동작
dlg.setPositiveButton("확인",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
//토스트 메시지
Toast.makeText(MainActivity.this,"확인을 눌르셨습니다.",Toast.LENGTH_SHORT).show();
}
});
dlg.show();
}
});
}
}
4. 체크박스 대화목록 상자
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("계발에서 개발까지"); //제목
final String[] versionArray = new String[] {"계발","에서","개발"};
final boolean[] checkArray = new boolean[]{true,false,false};
dlg.setIcon(R.drawable.deum); // 아이콘 설정
dlg.setMultiChoiceItems(versionArray, checkArray, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
}
});
// 버튼 클릭시 동작
dlg.setPositiveButton("확인",new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which) {
//토스트 메시지
Toast.makeText(MainActivity.this,"확인을 눌르셨습니다.",Toast.LENGTH_SHORT).show();
}
});
dlg.show();
}
});
}
}
이런 식으로 체크박스 형태로도 가능합니다.
지금까지 대화 상자를 이용하여 가능한 예제를 둘러보았습니다.
이런 식으로 대화 상자를 활용한다면
멋진 앱을 만들 수 있습니다.
수고하셨습니다,
'Android Studio' 카테고리의 다른 글
안드로이드 스튜디오 Google AdMob 배너 광고 넣기 (모바일 광고) (1) | 2019.12.06 |
---|---|
안드로이드 스튜디오 ERROR: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android (0) | 2019.12.05 |
안드로이드 스튜디오 TabHost 사용하기 (1) | 2019.12.02 |
안드로이드 스튜디오 초 간단 계산기 앱 만들기 (1) | 2019.12.02 |
안드로이드 스튜디오 핸드폰 뒤로가기 두번으로 앱 종료시키기(onBackPressed) (0) | 2019.11.30 |