안드로이드에서 AlertDialog 에 입력을 받거나 커스텀을 하기 위한 방법을 알아봅니다..
이번에는 EditText를 달아보는 연습을 해보겠습니다. ^^
1. 레아이웃 생성 (.xml)
– res/layout 폴더내에 xml 형태로 레이아웃에 원하는 View 들을 추가한다.
(TextView, EditText, Spinner, Button…)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp" >
<EditText
android:id="@+id/toolEvent_popup_input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp" />
</LinearLayout>
2. AlertDialog 사용 (java)
// AlertDialog 객체 선언 AlertDialog dialog = create_inputDialog(); // Context 얻고, 해당 컨텍스트의 레이아웃 정보 얻기 Context context = getApplicationContext(); LayoutInflater inflater = (LayoutInflater)context.getSystemService(LAYOUT_INFLATER_SERVICE); // 레이아웃 설정 View layout = inflater.inflate(R.layout.tool_event_click_popup, (ViewGroup)findViewById(R.id.popup_root)); // Input 소프트 키보드 보이기 dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); // AlertDialog에 레이아웃 추가 dialog.setView(layout); dialog.show();
3. AlertDilog 선언
private AlertDialog create_inputDialog() {
AlertDialog dialogBox = new AlertDialog.Builder(this)
.setTitle("안내")
.setMessage("값을 입력하세요")
.setPositiveButton("예", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 예 버튼 눌렀을때 액션 구현
}
})
.setNeutralButton("아니오", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 아니오 버튼 눌렀을때 액션 구현
}
}).create();
return dialogBox;
}