U3F1ZWV6ZTQxNTgwNTMwMTI5NzMyX0ZyZWUyNjIzMjU5MzkxMDExNA==

How to Create Custom AlertDialog in Android Studio | AlertDialog


كيفية أنشاء مربع حوار مخصص  في Android

سنتعلم في هذا البرنامج التعليمي إنشاء CustomAlertDialog  باستخدام لغة الجافا في Android  المعروف باسم مربع الحوار سوف نتعلم كيفية تنفيذها باشكل الذي تريد و دمجه وربطة برمجيا في تصميم النشاط في الاندرويد  مربع الحوار عبارة عن نافذة صغيرة تطالب المستخدم باتخاذ قرار أو إدخال معلومات إضافية في بعض الأحيان في التطبيق الخاص بك ، إذا أردت أن تطلب من المستخدم اتخاذ قرار بين نعم أو لا ردًا على أي إجراء معين يتخذه المستخدم ، من خلال البقاء في نفس النشاط ودون تغيير الشاشة ، يمكنك استخدام Alert Dialog.

سوف اترك رابط تحميل الكود اسفل المقال

دعونا الان نقوم بأنشاء نوعين من مربع الحوار النوع الاول يظهر رسالة التنبيه ويعطي الإجابة بصيغة نعم أو لا. يعرض Alert Dialog الرسالة لتحذيرك وبعد ذلك وفقًا لردك ، تتم معالجة الخطوة التالية. نقوم بأنشاء تصميم مربع الحوار سوف انشاء ملف layout واقوم بتسمية  dialog_success.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="65dp"
        android:background="@color/green">

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_centerInParent="true"
            android:background="@drawable/ic_success" />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">

        <TextView
            android:id="@+id/msg_Success"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@font/coffe"
            android:text="Success"
            android:textSize="16sp"
            android:textAlignment="center"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            android:layout_gravity="center_horizontal" />


    </LinearLayout>
    <LinearLayout android:gravity="center"
        android:layout_gravity="bottom|center|left"
        android:orientation="horizontal"
        android:background="@color/transparent"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="5dp"
        android:layoutDirection="inherit">

        <Button android:textSize="17.0sp"
            android:textStyle="bold"
            android:textColor="@color/white"
            android:layout_gravity="center"
            android:id="@+id/btn_yes"
            android:background="@color/green"
            android:visibility="visible"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:text="yes" />


        <Button android:textSize="17.0sp"
            android:textStyle="bold"
            android:textColor="@color/white"
            android:layout_gravity="center"
            android:id="@+id/btn_no"
            android:background="@color/green"
            android:visibility="visible"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:text="no" />

    </LinearLayout>


</LinearLayout>

دعونا الان نقوم بأنشاء النوع الاخرى من مربع الحوار يظهر رسالة التنبيه للمستخدم ويعطي و يعرض مربع نص يطلب من المستخدم ادخال بيانات مثل الاسم  وبعد ذلك وفقًا لردك ، تتم معالجة الخطوة التالية. نقوم بأنشاء تصميم مربع الحوار سوف انشاء ملف layout واقوم بتسمية  dialog_msg.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="65dp"
        android:background="@color/appColor">

        <ImageView
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_centerInParent="true"
            android:background="@drawable/ic_success" />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="16dp">


        <EditText
            android:textSize="16sp"
            android:textStyle="normal"
            android:textColor="@color/GrayBlack"
            android:textColorHighlight="@color/appColor"
            android:gravity="center"
            android:layout_gravity="center"
            android:id="@+id/edit_txt_name"
            android:background="@drawable/border_txt"
            android:layout_width="match_parent"
            android:layout_height="45.0dip"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:hint="Enter name"
            android:inputType="text" />



    </LinearLayout>
    <LinearLayout android:gravity="center"
        android:layout_gravity="bottom|center|left"
        android:orientation="horizontal"
        android:background="@color/transparent"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="5dp"
        android:layoutDirection="inherit">

        <Button android:textSize="17.0sp"
            android:textStyle="bold"
            android:textColor="@color/white"
            android:layout_gravity="center"
            android:id="@+id/btn_yes"
            android:background="@color/appColor"
            android:visibility="visible"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:text="yes" />


        <Button android:textSize="17.0sp"
            android:textStyle="bold"
            android:textColor="@color/white"
            android:layout_gravity="center"
            android:id="@+id/btn_cancel"
            android:background="@color/appColor"
            android:visibility="visible"
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_margin="5dp"
            android:text="cancel" />

    </LinearLayout>


</LinearLayout>

الان سوف نقوم برمجيا بربطها في ملف الجافا واقوم بأنشاء زرين من الاجراءات لعرض مربع الحوار

import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

   AlertDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        ((Button)findViewById(R.id.btu_show)).setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {

                showDialogOne(MainActivity.this);
            }
        });


        ((Button)findViewById(R.id.btu_show_tow)).setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {

                showDialogTow(MainActivity.this);

            }
        });

    }


    private void showDialogOne(Activity activity){

        AlertDialog.Builder mBuilder = new AlertDialog.Builder(activity);
        View mView = getLayoutInflater().inflate(R.layout.dialog_success, null);

        TextView lbl_title = (TextView) mView.findViewById(R.id.msg_Success);
        Button btn_yes = (Button) mView.findViewById(R.id.btn_yes);
        Button btn_no = (Button) mView.findViewById(R.id.btn_no);
        mBuilder.setView(mView);
        dialog = mBuilder.create();

        if (dialog.getWindow() != null)
            dialog.getWindow().getAttributes().windowAnimations = R.style.SlidingDialogAnimation;


        lbl_title.setText("msg Success");



        btn_yes.setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {
                dialog.dismiss();
                Toast.makeText(getBaseContext(),"yes", Toast.LENGTH_SHORT).show();
            }
        });

        btn_no.setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {
                dialog.dismiss();
                Toast.makeText(getBaseContext(),"no", Toast.LENGTH_SHORT).show();

            }
        });

        dialog.show();

    }


    private void showDialogTow(Activity activity){

        AlertDialog.Builder mBuilder = new AlertDialog.Builder(activity);
        View mView = getLayoutInflater().inflate(R.layout.dialog_msg, null);

        final EditText editText = (EditText) mView.findViewById(R.id.edit_txt_name);
        Button btn_yes = (Button) mView.findViewById(R.id.btn_yes);
        Button btn_cancel = (Button) mView.findViewById(R.id.btn_cancel);
        mBuilder.setView(mView);
        dialog = mBuilder.create();

        if (dialog.getWindow() != null)
            dialog.getWindow().getAttributes().windowAnimations = R.style.SlidingDialogAnimation;


        btn_yes.setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {
                dialog.dismiss();
                Toast.makeText(getBaseContext(),editText.getText().toString(), Toast.LENGTH_SHORT).show();
            }
        });

        btn_cancel.setOnClickListener(new View.OnClickListener() {
            public void onClick(View param1View) {
                dialog.dismiss();
                Toast.makeText(getBaseContext(),"cancel", Toast.LENGTH_SHORT).show();

            }
        });

        dialog.show();

    }

}

 

 

قم بتنزيل كود المصدر  CustomAlertDialog  مجانًا: انقر هـــــــــــــــنــــــا للتحميل


لا تنسوا متابعتنا على موقعنا و الاشتراك في قناتنا على اليوتيوب و مواقع التواصل الاجتماعي
والسلام عليكم ورحمة الله


شكرا لكم علي زيارة موقعنا " علوش لتقنية المعلومات " 
تعليقات
ليست هناك تعليقات
إرسال تعليق

إرسال تعليق

الاسمبريد إلكترونيرسالة