مجید آرتا 5,874 ارسال شده در 12 آبان، ۱۳۹۴ اشتراک گذاری ارسال شده در 12 آبان، ۱۳۹۴ با عرض سلام در این آموزش قصد داریم با انواع دیالوگ ها کار کنیم. DatePickerDialog TimePickerDialog Custom Dialog AlertDialog ProgressDialog 1.DatePickerDialog : عکس نمونه از این کلاس --> اینجا می تونیم مقدار سال و ماه و روز رو بگیریم : OnDateSetListener dsl = new OnDateSetListener() { @Override public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { //arg1 = Year || arg2 = Month || arg3 = Day } }; DatePickerDialog date = new DatePickerDialog(DialogsActivity.this, dsl, 2015, 07, 02); date.show(); خب ابتدا رویداد کلیک و یا لیسنر کلیکشو میسازیم تا با کلیک شدن روی دکمه Set برای ما کاری رو انجام بده.و ما توی قسمت لیسنر کدی رو ننوشتیم و فقط توضیحی در مورد آرگومان های arg1 , arg2 , arg3 دادیم که چی هستن و شما می تونید این مقادیر رو چاپ و یا هر کاری دوست داشتید انجام بدید.و در ادامه دیالوگش رو میسازیم که یک لیسنر میخواد که لیسنر تعریف شده رو بهش نسبت میدیم ( dsl ). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.TimePickerDialog: برای وارد کردن زمان هستش.عکس -----> کد نوشته شده برای این دیالوگ : OnTimeSetListener tsl = new OnTimeSetListener() { @Override public void onTimeSet(TimePicker arg0, int arg1, int arg2) { //arg1 = Hour || arg2 = Minute } }; TimePickerDialog d = new TimePickerDialog(DialogsActivity.this, tsl, 12, 22, true); d.show(); این دیالوگ هم مثل قبلی میاییم براش یک لیسنر تعریف می کنیم ( رویداد یا همون ایونت ) و داخل این رویداد در مورد arg1 , arg2 توضیح داده شده که چه مقداری رو دارن. و در ادامه تایمر دیالوگ تعریف شده و مقادیر رو هم بهش دستی نسبت دادیم.در ضمن توی قبلی یادم رفت بگم که خودمون میتونیم بهتشون مقدار بدیم.یعنی ساعت گوشی رو بگیریم و به وسیله این دیاالوگ نشون بدیم.برای دیالوگ قبلی هم میتونیم تاریخ امروز رو بگیریم و نمایش بدیم. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.Custom Dialog : توی این مورد ما میاییم یک لایوت میسازیم و لایوت رو به عنوان یک دیالوگ سفارشی نمایش میدیم.عکس ------> همینجور که توی عکس می بینید یک پروگرس بار و یک متن Loading هستش که بنده با استفاده از یک پروگرس بار و یک TextView ( همون Label ) یک دیالوگ سفارشی ساختم و کد نوشته شده به این صورت هستش : Dialog dialog = new Dialog(DialogsActivity.this); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dialog_layout); dialog.show(); DialogsActivity اسم اکتیویتی بنده و dialog_layout هم لایوتی هستش که پروگرس بار و اون متن Loading رو قرار دادم. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4.AlertDialog : این دیالوگ همانند MsgBox2 توی B4A هستش.عکس ------> خب مشاهده می کنید که 3 گزینه , no , cancel رو شامل میشه و یک تایتل و متن اصلی با یک عکس.کد نوشته شده : AlertDialog.Builder builder = new AlertDialog.Builder(DialogsActivity.this) .setIcon(android.R.drawable.alert_light_frame) .setTitle("Alert Test") .setMessage("Matn Testi") .setPositiveButton("YES", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { //YES Button } }) .setNegativeButton("NO", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { //NO Button } }) .setNeutralButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { //Cancel Button } }); builder.create().show(); خب این شاید یکمی از لحاظ ساختار نوشتاری فرق کنه ولی خب مهم اینه که موضوع رو درک کنید. ببینید 3 تا لیسنر یا ایونت تعریف کردیم که هر کدومش مربوط میشه به دکمه و NO و Cancel که با کلیک شدن روی هر کدوم از دکمه ها چه اتفاقی رخ بده. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5.ProgressDialog : معادل این رو هم توی بیسیک داریم که با نوشتم کد ProgressDialogShow نمایش داده میشه.عکس ------> اگه توجه کنید برای این دیالوگ یک دکمه OK ایجاد کردیم که برای این دکمه هم می تونیم یک ایونت یا لیسنر تعریف کنیم : ProgressDialog pd = new ProgressDialog(DialogsActivity.this); pd.setTitle("Please Wiat"); pd.setMessage("Processing"); pd.setButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { //Handle Code } }); pd.show(); خب تا همینجا کار با دیالوگ ها و معرفی انواع دیالوگ ها تموم میشه و بستگی به خودتون و زمان نیازتون داره که از کدومش استفاده کنید. موفق مؤید باشید. آموزشی از AnswerCenter.IR لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.