Android-경고 대화 상자
대화 상자는 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창입니다.
응용 프로그램에서 사용자가 수행 한 특정 작업에 대한 응답으로 예 또는 아니요 중에서 결정을 내 리도록 사용자에게 요청하려는 경우 동일한 활동을 유지하고 화면을 변경하지 않고 경고 대화 상자를 사용할 수 있습니다.
경고 대화 상자를 만들기 위해서는 AlertDialog의 내부 클래스 인 AlertDialogBuilder의 객체를 만들어야합니다. 구문은 다음과 같습니다.
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
이제 AlertDialogBuilder 클래스의 객체를 사용하여 양수 (예) 또는 음수 (아니오) 버튼을 설정해야합니다. 구문은 다음과 같습니다.
alertDialogBuilder.setPositiveButton(CharSequence text,
DialogInterface.OnClickListener listener)
alertDialogBuilder.setNegativeButton(CharSequence text,
DialogInterface.OnClickListener listener)
이 외에도 빌더 클래스에서 제공하는 다른 기능을 사용하여 경보 대화 상자를 사용자 정의 할 수 있습니다. 아래에 나열되어 있습니다.
Sr. 아니요 | 방법 유형 및 설명 |
---|---|
1 | setIcon(Drawable icon) 이 방법은 경고 대화 상자의 아이콘을 설정합니다. |
2 | setCancelable(boolean cancel able) 이 메서드는 대화 상자를 취소 할 수 있는지 여부를 설정합니다. |
삼 | setMessage(CharSequence message) 이 방법은 경고 대화 상자에 표시 할 메시지를 설정합니다. |
4 | setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener) 이 메서드는 대화 상자에 표시 할 항목 목록을 내용으로 설정합니다. 선택한 옵션은 리스너가 알립니다. |
5 | setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) 이 메서드는 대화가 취소 된 경우 호출 될 콜백을 설정합니다. |
6 | setTitle(CharSequence title) 이 방법은 대화 상자에 표시 할 제목을 설정합니다. |
대화 빌더를 만들고 설정 한 후 빌더 클래스의 create () 메서드를 호출하여 경고 대화 상자를 만듭니다. 구문은 다음과 같습니다.
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
그러면 경고 대화 상자가 만들어지고 화면에 표시됩니다.
대화 조각
예제에 들어가기 전에 우리는 dialog fragment를 알아야합니다 .Dialog fragment는 대화 상자에 조각을 보여줄 수있는 조각입니다.
public class DialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
toast.makeText(this,"enter a text here",Toast.LENTH_SHORT).show();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
});
// Create the AlertDialog object and return it
return builder.create();
}
}
}
목록 대화 상자
대화 상자에 항목 목록을 표시하는 데 사용되어 왔는데, 사용자가 항목 목록을 선택하거나 여러 항목 목록에서 항목을 클릭해야한다고 가정하면이 상황에서 목록 대화 상자를 사용할 수 있습니다.
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(Pick a Color)
.setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
}
});
return builder.create();
}
단일 선택 목록 대화 상자
대화 상자에 단일 선택 목록을 추가하는 데 사용되며 사용자 선택에 따라 선택 또는 선택 취소 할 수 있습니다.
public Dialog onCreateDialog(Bundle savedInstanceState) {
mSelectedItems = new ArrayList();
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("This is list choice dialog box");
.setMultiChoiceItems(R.array.toppings, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
// If the user checked the item, add it to the selected items
mSelectedItems.add(which);
}
else if (mSelectedItems.contains(which)) {
// Else, if the item is already in the array, remove it
mSelectedItems.remove(Integer.valueOf(which));
}
}
})
// Set the action buttons
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// User clicked OK, so save the mSelectedItems results somewhere
// or return them to the component that opened the dialog
...
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
...
}
});
return builder.create();
}
예
다음 예제는 Android에서 AlertDialog를 사용하는 방법을 보여줍니다.
이 예제를 실험하려면 에뮬레이터 또는 실제 기기에서 실행해야합니다.
단계 | 기술 |
---|---|
1 | Android 스튜디오를 사용하여 Android 애플리케이션을 만들고 com.example.sairamkrishna.myapplication 패키지에서 My Application으로 이름을 지정합니다. |
2 | src / MainActivity.java 파일을 수정하여 경고 대화 상자 코드를 추가하여 대화 상자를 시작하십시오. |
삼 | 레이아웃 XML 파일 res / layout / activity_main.xml 수정 필요한 경우 GUI 구성 요소를 추가하십시오. |
4 | 기본 문자열 상수를 변경할 필요가 없습니다. Android 스튜디오는 values / string.xml에서 기본 문자열을 처리합니다. |
5 | 애플리케이션을 실행하고 실행중인 Android 기기를 선택하고 여기에 애플리케이션을 설치하고 결과를 확인합니다. |
다음은 수정 된 코드입니다. src/MainActivity.java
package com.example.sairamkrishna.myapplication;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void open(View view){
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Are you sure,
You wanted to make decision");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this,"You clicked yes
button",Toast.LENGTH_LONG).show();
}
});
alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
다음은 수정 된 코드입니다. res/layout/activity_main.xml
아래 코드에서 abc tutorialspoint.com의 로고를 나타냅니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alert Dialog"
android:id="@+id/textView"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorialspoint"
android:id="@+id/textView2"
android:textColor="#ff3eff0f"
android:textSize="35dp"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView2"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alert dialog"
android:id="@+id/button"
android:layout_below="@+id/imageView"
android:layout_alignRight="@+id/textView2"
android:layout_alignEnd="@+id/textView2"
android:layout_marginTop="42dp"
android:onClick="open"
android:layout_alignLeft="@+id/imageView"
android:layout_alignStart="@+id/imageView" />
</RelativeLayout>
여기에Strings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
다음은 기본 코드입니다. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.sairamkrishna.myapplication.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
애플리케이션을 실행 해 보겠습니다. 실제 Android 모바일 장치를 컴퓨터에 연결했다고 가정합니다. Android 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고
옵션을 선택한 다음 클릭하십시오. 예 버튼을 클릭하면 결과는 다음과 같습니다.
버튼을 클릭하지 않으면 finish ()가 호출되고 응용 프로그램이 닫힙니다.