안드로이드 : 다이얼로그(Single / MultipleChoice)
clickBtn 메소드는 xml에서 onClick 속성을 이용한 것입니다.
public class MainActivity extends AppCompatActivity {
String[] items = new String[] {"Apple", "Banana", "Orange", "Grape"};
boolean[] checked = new boolean[] {true, false, true, false};
int a = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void clickBtn(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//AlertDialog안에 static 이너 클래스인 Builder를 생성한 것임
builder.setTitle("다이얼 로그"); //건축가에게 다이얼로그의 모양 설계 의뢰
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage("다이얼로그 테스트입니다.");
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "OK", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "CANCEL", Toast.LENGTH_SHORT).show();
}
});
AlertDialog dialog = builder.create();
//다이얼로그 밖 터치시 기본 취소되는 걸 안닫히게 하기
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
public void clickBtn2(View view) {
//리스트형
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("목록 다이얼로그");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
public void clickBtn3(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Single Choice 다이얼로그");
builder.setSingleChoiceItems(items, a, new DialogInterface.OnClickListener() {
@Override //1은 기본 선택 할것의 index 번호
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
a = which;
}
});
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
}
public void clickBtn4(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Multiple choice Item");
builder.setMultiChoiceItems(items, checked, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checked[which] = isChecked; //눌러서 바뀌었을때 값이 옴
}
});
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String s = "";
for(int i = 0; i < checked.length; i++) {
s += checked[i] + " ";
}
Toast.makeText(MainActivity.this, s, Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
}
'안드로이드' 카테고리의 다른 글
안드로이드 : 액션바 제목설정, 뒤로가기 버튼 만들고 리스너 달기 (0) | 2018.12.18 |
---|---|
안드로이드 : 클릭 리스너 Long클릭시 Short 클릭 인식 안되게 하기 (0) | 2018.12.14 |
안드로이드 : 이미지와 텍스트가 포함된 토스트 띄우기 (0) | 2018.12.12 |