자신 만 의 Android 대화 상자(Dialog)사용자 정의 집합
onCreateDialog(int):이 반전 함 수 를 사용 할 때 Android 시스템 은 이 Activity 를 모든 대화 상자 의 소유자 로 설정 하여 모든 대화 상자 의 상 태 를 자동 으로 관리 하고 Activity 에 연결 합 니 다.이렇게 하면 모든 대화 상자 가 이 Activity 의 특정 속성 을 계승 합 니 다.예 를 들 어 대화 상자 가 열 렸 을 때 메뉴 키 는 이 Activity 가 정의 하 는 옵션 메뉴 로 표시 되 고 볼 륨 키 는 Activity 가 사용 하 는 오디 오 흐름 을 수정 합 니 다.
showDialog(int):대화 상 자 를 표시 하려 면 showDialog(int id)방법 을 사용 하여 이 대화 상 자 를 표시 하 는 유일한 정 수 를 전달 합 니 다.대화 상자 가 처음 요청 되 었 을 때,Android 는 Activity 에서 onCreate Dialog(int id)를 호출 합 니 다.이 대화 상자 Dialog 를 초기 화해 야 합 니 다.이 반전 방법 은 쇼 Dialog(int id)와 같은 ID 로 전 달 됩 니 다.이 대화 상 자 를 만 든 후 Activity 의 마지막 에 이 대상 을 되 돌려 줍 니 다.
onPrepareDialog(int,Dialog):대화 상자 가 표시 되 기 전에 Android 는 선택 할 수 있 는 반전 함수 onPrepareDialog(int id,Dialog)를 호출 합 니 다.대화 상자 가 열 릴 때마다 속성 을 바 꾸 려 면 이 방법 을 정의 할 수 있 습 니 다.이 방법 은 대화 상 자 를 열 때마다 호출 되 며,onCreateDialog(int)는 대화 상자 가 처음 열 릴 때 만 호출 됩 니 다.onPrepareDialog()를 정의 하지 않 으 면 이 대화 상 자 는 지난번 에 열 었 을 때 와 같 습 니 다.이 방법 은 대화 상자 의 ID 와 onCreate Dialog()에서 만 든 대화 상자 대상 으로 도 전 달 됩 니 다.
dismissdialog(int):대화 상 자 를 닫 으 려 고 할 때 이 대화 상자 에 dismiss()를 호출 하여 제거 할 수 있 습 니 다.필요 하 다 면 이 Activity 에서 dismissDialog(int id)방법 을 호출 할 수 있 습 니 다.이 대화 상자 에 dismiss()방법 을 호출 할 수 있 습 니 다.대화 상자 의 상 태 를 onCreate Dialog(int id)방법 으로 관리 하고 싶다 면(앞에서 토론 한 것 처럼)대화 상자 가 없어 질 때마다 이 대화 상자 의 상 태 는 이 Activity 에 의 해 유 지 됩 니 다.이 대상 이 필요 하지 않 거나 이 상 태 를 지 우 는 것 이 중요 하 다 고 결정 하면 removeDialog(int id)를 호출 해 야 합 니 다.내부 대상 인용 을 삭제 하고 이 대화 상자 가 표시 되면 삭 제 됩 니 다.
다음은 몇 가지 대화 상자 의 효과 입 니 다.
그림 1 효과:이 효 과 는 되 돌아 오 는 단 추 를 누 를 때 알림 을 꺼 내 서 오류 가 없 도록 하 는 것 입 니 다.일반적인 대화 상자 스타일 을 사용 합 니 다.
코드:
// dialog()
protected void dialog() {
AlertDialog.Builder builder = new Builder(Main.this);
builder.setMessage(" ?");
builder.setTitle(" ");
builder.setPositiveButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Main.this.finish();
}
});
builder.setNegativeButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
onKeyDown(int keyCode,KeyEvent event)방법 에서 이 방법 을 호출 합 니 다.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
dialog();
}
return false;
}
그림 1
그림 2 효과:대화 상자 의 도 표를 바 꾸 고 세 개의 단 추 를 추가 합 니 다.
Dialog dialog = new AlertDialog.Builder(this).setIcon(
android.R.drawable.btn_star).setTitle(" ").setMessage(
" ?").setPositiveButton(" ",
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, " 。",
Toast.LENGTH_LONG).show();
}
}).setNegativeButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, " 。", Toast.LENGTH_LONG)
.show();
}
}).setNeutralButton(" ", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(Main.this, " 。", Toast.LENGTH_LONG)
.show();
}
}).create();
dialog.show();
그림 2
그림 3 효과:정보 내용 은 간단 한 View 형식 이다.
new AlertDialog.Builder(this).setTitle(" ").setIcon(
android.R.drawable.ic_dialog_info).setView(
new EditText(this)).setPositiveButton(" ", null)
.setNegativeButton(" ", null).show();
그림 3
그림 4 효과:정보 내용 은 단일 선택 상자 입 니 다.
new AlertDialog.Builder(this).setTitle(" ").setMultiChoiceItems(
new String[] { "Item1", "Item2" }, null, null)
.setPositiveButton(" ", null)
.setNegativeButton(" ", null).show();
그림 4
그림 5 효과:정보 내용 은 다 중 선택 상자 입 니 다.
new AlertDialog.Builder(this).setTitle(" ").setIcon(
android.R.drawable.ic_dialog_info).setSingleChoiceItems(
new String[] { "Item1", "Item2" }, 0,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setNegativeButton(" ", null).show();
그림 5
그림 6 효과:정보 내용 은 간단 한 목록 항목 입 니 다.
new AlertDialog.Builder(this).setTitle(" ").setItems(
new String[] { "Item1", "Item2" }, null).setNegativeButton(
" ", null).show();
그림 6
그림 7 효과:정보 내용 은 사용자 정의 레이아웃 입 니 다.
1.레이아웃 파일
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="horizontal"
android:id="@+id/dialog">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvname" android:text=" :" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
</LinearLayout>
2.호출 코드
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog,
(ViewGroup) findViewById(R.id.dialog));
new AlertDialog.Builder(this).setTitle(" ").setView(layout)
.setPositiveButton(" ", null)
.setNegativeButton(" ", null).show();
그림 7
이상 은 사용자 정의 안 드 로 이 드 대화 상자(Dialog)의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.