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 스튜디오에서 앱을 실행하려면 프로젝트의 활동 파일 중 하나를 열고

도구 모음에서 실행 아이콘을 클릭하십시오 . 응용 프로그램을 시작하기 전에] Android studio는 Android 응용 프로그램을 실행할 옵션을 선택하는 다음 창을 표시합니다.

옵션을 선택한 다음 클릭하십시오. 예 버튼을 클릭하면 결과는 다음과 같습니다.

버튼을 클릭하지 않으면 finish ()가 호출되고 응용 프로그램이 닫힙니다.