نمایش یک Dialog Window

نمایش یک Dialog Window

بسم الله الرحمن الرحیم

نمایش یک Dialog Window 

فصل دوم- بخش چهارم

بسم الله الرحمن الرحیم

نمایش یک Dialog Window 

فصل دوم- بخش چهارم

زمان های  وجود دارد که شما نیاز دارید تا یک Dialog Window‌نمایش دهید  که    کاربر اطلاعات  خود ا وارد نماید.

در این موارد شما باید متد onCreateDialog()د راکه از نوع Protected  می باشد, و توسط  کلاس پایه Activity  تعریف شده ا را override  کنید.

 

داده های زیر را در فایل main.xml  کپی کنید.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_dialog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Click to display a dialog" />
</LinearLayout>

وآنهای   را در فایل java کپی کنید.

package com.Mehrdad.activity101;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.hardware.Camera.Area;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
String tag="LifeCycle" ;
CharSequence[] items = { "Google", "Apple", "Microsoft" };
boolean[] itemsChecked = new boolean [items.length];
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
public void onClick(View v) {
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id) {
switch(id)
{
case 0 :
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_delete)
.setTitle("En ghesamt Title Ra Vared Mikonid")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Ok Ra Click Kardid",Toast.LENGTH_SHORT)
.show();
}
}
).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Cancel Ra Click Kardid",Toast.LENGTH_SHORT)
.show();
}
} )
.setMultiChoiceItems(items,itemsChecked , new DialogInterface.OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
Toast.makeText(getBaseContext(),items[arg1] + " Ra Entekhab Kardid" ,Toast.LENGTH_SHORT)
.show();

}
})
.create();
}
return null;
}
}

برنامه با فشار دادن کلید F11‌اجرا کنید

سپس بر روی دکمه کلیک کنید تا Dialog  به شما  نمایش داده شود.

نمایش یک Dialog در اندروید

توضیحات

برای  نمایش یک دیالوگ شما باید متدonCreateDialog() از کلاس Activity  را override ‌کنید

@Override
protected Dialog onCreateDialog(int id) {
/**…*/
}

این متد زمانی که  متدshowDialog()  را صدا می زنیم اجرا می شود.

public void onClick(View v) {
showDialog(0);
}

متد onCreateDialog() زمانی که اجرا می شود که  متد showDialog()  صدا بزنیم. که پارامار ورودی  آن یک  عدد  integer  می باشد که  مشخص می کند که کدام دیالوگ باید نمایش داده شود. ما از دستور Switch

    با توجه به پارامتری که به ُshowDialog()‌ارسال  کردیم  تعیین می کنیم که کدام Dialog بایدایجاد و  نمایش داده شود.

برای ایجاد یک دیالوگ شما می توانید از سازنده   کلاس Builder  مربوط AlertDialog استفاده کنید.

شما می توانید انواع Property  ها را از قبیل  Icon,Titleو از همه مهتر checkboxes: تنظیم کنید.

protected Dialog onCreateDialog(int id) { 
switch(id)
{
case 0 :
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_delete)
.setTitle("En ghesamt Title Ra Vared Mikonid")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Ok Ra Click Kardid",Toast.LENGTH_SHORT)
.show();

}
}
).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Cancel Ra Click Kardid",Toast.LENGTH_SHORT)
.show();

}
} )
.setMultiChoiceItems(items,itemsChecked , new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
Toast.makeText(getBaseContext(),items[arg1] + " Ra Entekhab Kardid" ,Toast.LENGTH_SHORT)
.show();

}
})
.create();
}
return null;
}
return null;
}

در کدی که مشاهه می کنید شما  دو Button تعیین کرده اید . با استفاده از متد های       setPositiveButton() برا یOK  و  setNegativeButton() برای   Cancel  و همچنین شما با استفاه از  متد setMultiChoiceItems()   checkboxها  را برای نمایش  و انتخاب کاربر تعیین کرده اید شما دو آرایه به این متد ارسال کره اید یک آرایه برای  نمایش و یک آرایه  مقادیر(Value) آن آیتم ها. و تعیین کرده اید  در  صورتی که هرکدام از این ایتم ها تیک خورد  متن آن بر روی صفحه نمایش داه شود شما برای  این  کار از کلاس     Toast استفاه کره اید

 

شما می توانید کد بالا را به صورت زیر  تغییر دهید

package com.Mehrdad.activity101;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.hardware.Camera.Area;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
String tag="LifeCycle" ;
CharSequence[] items = { "Google", "Apple", "Microsoft" };
boolean[] itemsChecked = new boolean [items.length];
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
}
public void onClick(View v) {
showDialog(0);
}
@Override
protected Dialog onCreateDialog(int id) {
switch(id)
{
case 0 :
Builder dialog= new AlertDialog.Builder(this);
dialog.setIcon(android.R.drawable.ic_delete);
dialog.setTitle("En ghesamt Title Ra Vared Mikonid");
dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Ok Ra Click Kardid",Toast.LENGTH_SHORT)
.show();

}
}
);
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(getBaseContext(),"Cancel Ra Click Kardid",Toast.LENGTH_SHORT)
.show();
}
} );

dialog.setMultiChoiceItems(items,itemsChecked , new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
Toast.makeText(getBaseContext(),items[arg1] + " Ra Entekhab Kardid" + String.valueOf(arg2) ,Toast.LENGTH_SHORT)
.show();

}
});
return dialog.create();
}
return null;
}
}

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس