기본적으로 안드로이드에서ui는 제공한다. 하지만 내용은 custom 관련
1. 안드로이드 기본 제공 화면을 이용할때 방식
접기
public boolean onKeyDown(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_BACK: String alertTitle = getResources().getString(R.string.app_name); String buttonMessage = getResources().getString(R.string.alert_msg_exit); String buttonYes = getResources().getString(R.string.button_yes); String buttonNo = getResources().getString(R.string.button_no); new AlertDialog.Builder(Main.this) .setTitle(alertTitle) .setMessage(buttonMessage) .setPositiveButton(buttonYes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub moveTaskToBack(true); finish(); } }) .setNegativeButton(buttonNo, null) .show(); } return true; } }
접기
2. 커스텀 다이얼로그
접기
main.java
import android.app.Activity; import android.app.Dialog; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton;
public class Activity extends Activity { private static final int DIALOG_ID = 0; static final int DIALOG_CUSTOM = 1; ImageButton button1, button2, button3; //메인버튼 Button close_ok, close_no; //다이얼로그 버튼 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //다이얼로그 생성 @Override protected Dialog onCreateDialog(int id) { Dialog dialog; switch(id) { case DIALOG_ID: dialog = getCustomDialog1(id); break; default: dialog = null; } return dialog; } //앱 종료 다이얼로그 protected Dialog getCustomDialog1(int id) { switch (id) { case DIALOG_ID: final Dialog dialog = new Dialog(this, R.style.Theme_Dialog); View view = getLayoutInflater().inflate(R.layout.custom_dialog_finish, null); dialog.setContentView(view); close_ok = (Button)view.findViewById(R.id.Button01); close_ok.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { finish(); } }); close_no = (Button)view.findViewById(R.id.Button02); close_no.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { dialog.cancel(); } }); return dialog; default: throw new IllegalArgumentException(); } }
//Back키를 누르면 다이얼로그가 활성화 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { showDialog(DIALOG_ID); event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } }
접기
접기
custom_dialog_finish.xml
//다이얼로그 생성 @Override protected Dialog onCreateDialog(int id) { Dialog dialog; switch(id) { case DIALOG_ID: dialog = getCustomDialog1(id); break; default: dialog = null; } return dialog; }
위 소스에서 이부분의 switch 문이 커스텀 다이얼로그를 생성할 수 있게끔 해주는 부분입니다.
접기
커스텀 다이얼로그는 직접 ui를 꾸밀 수 있다. ( 꾸며야 한다 가 맞는말인가..)
접기
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android " android:orientation="vertical" android:layout_width="230dp" android:layout_height="wrap_content"> <LinearLayout android:orientation="vertical" android:layout_width="230dp" android:layout_height="wrap_content" android:background="@drawable/obj_popup"> <TextView android:text="App을 종료하시겠습니까?" android:id="@+id/TextView01" android:textSize="15dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/black" android:layout_marginTop="42dp" android:layout_gravity="center" android:gravity="center"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="horizontal" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" > <Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="확인" android:textColor="#ffffff" android:layout_marginRight="5dp" android:background="@drawable/btn_01_selector"/> <Button android:text="취소" android:textSize="13dp" android:id="@+id/Button02" android:layout_marginLeft="5dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_01_selector" android:textColor="#ffffff"/> </LinearLayout> </LinearLayout> </LinearLayout>
접기
여기까지.
댓글