728x90
반응형
준비
res / values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="location">
<item>---- 선택 ----</item>
<item>서울특별시</item>
<item>경기도</item>
<item>인천광역시</item>
<item>부산광역시</item>
<item>광주광역시</item>
<item>대전광역시</item>
<item>대구광역시</item>
<item>울산광역시</item>
<item>제주시</item>
</string-array>
</resources>
layout
<Spinner
android:id="@+id/spinner"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="15sp"
android:hint="테스트 입력"
android:id="@+id/editT"/>
MainActivity.java
Button gallId = (Button)findViewById(R.id.gallId);
gallId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dial();
}
});
dial(); //여기서 다이얼로그를 불르고 설정합니다.
AlertDialog.Builder aBuilder = new AlertDialog.Builder(MainActivity.this);
View mView = getLayoutInflater().inflate(R.layout.report_dialog,null);
aBuilder.setTitle("커스텀 다이얼로그"); // 제목 설정
aBuilder.setMessage("커스텀 다이얼로그 연습."); // 내용 설정
// 스피너 설정
final Spinner sp = (Spinner)mView.findViewById(R.id.spinner);
// 스피너 어댑터 설정
ArrayAdapter yearAdapter = ArrayAdapter.createFromResource(this, R.array.location, android.R.layout.simple_spinner_item);
sp.setAdapter(yearAdapter);
// editText 설정
final EditText et = (EditText)findViewById(R.id.editT);
View mView = getLayoutInflater().inflate(R.layout.report_dialog,null);
LayoutInflater를 이용 하여, 위에서 만든 레이아웃을 넣어줍니다. ( 레이아웃 명 , null);
ArrayAdapter yearAdapter = ArrayAdapter.createFromResource(this, R.array.location, android.R.layout.simple_spinner_item);
sp.setAdapter(yearAdapter);
(어댑터 세팅)
위에서 만든 location 정보를 넣습니다.
// 확인 버튼 설정
aBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Text 값 받아서 로그 남기기
String value = et.getText().toString();
TextView test = (TextView)findViewById(R.id.test);
test.setText(value);
dialog.dismiss(); //닫기
}
});
// 취소 버튼 설정
aBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); //닫기
}
});
다이얼로그 버튼 설정, 위에서 만든 스피너와 에디트 텍스트 값을 받아 처리할 로직을 만들어 넣습니다.
// 창 띄우기
aBuilder.setView(mView);
AlertDialog dialog = aBuilder.create();
dialog.show();
AlertDialog.Builder에 View를 설정하고,
다이얼로그를 만들어 보여줍니다.
끝.
728x90
반응형
'Android' 카테고리의 다른 글
editText 자동 포커스, 키보드 제어 (0) | 2018.05.16 |
---|---|
프래그먼트 뷰페이저 참조 유튜브 경로 (0) | 2018.05.14 |
뷰페이저 (0) | 2018.05.10 |
SearchView 공백 값 이벤트 (query 공백처리 ) (0) | 2018.05.09 |
스피너 값(아이템) 변경 이벤트 (0) | 2018.05.09 |