안드로이드에서 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; }