كيفية أنشاء مربع حوار مخصص في 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 مجانًا: انقر
هـــــــــــــــنــــــا للتحميل
لا تنسوا متابعتنا على موقعنا و الاشتراك في قناتنا على اليوتيوب و مواقع
التواصل الاجتماعي
والسلام عليكم ورحمة الله
شكرا لكم علي زيارة موقعنا " علوش لتقنية المعلومات "
إرسال تعليق