PDA

View Full Version : ساخت دیالوگ با امکانات دلخواه



leadstar71
جمعه 19 اردیبهشت 1393, 20:20 عصر
دوستان من یک اکتیویتی دارم که در اطلاعات یک شخص از قبیل ایمیل و شماره تلفن و نام منطقه در اون ثبت شده همراه با یک دکمه برقراری ارتباط.
من میخوام کاری کنم که زمانی روی برقراری ارتباط کلیک کردم یک دیالوگ با چند دکمه از قبیل:
1- ارسال پیامک
2- ارسال ایمیل
3- برقراری تماس
برام اجرا بشه. درست کردن دیالوگ بلدم. ولی مشکل کارم اینجاست که موقعی روی دکمه ی برقراری ارتباط کلیک میکنم انتقال میشه به اکتیویتی دیالوگ. ولی من میخوام خود دیالوگ در هموم اکتیویتی ظاهر بشه.
دوستان کسی هست راهنمایی کنه؟

saeed_g21
جمعه 19 اردیبهشت 1393, 20:26 عصر
میتونی کدت رو بدی ؟
چطوری دیالوگ ساختی ؟!؟!؟!

saeed_g21
جمعه 19 اردیبهشت 1393, 20:29 عصر
اگه با Activity دیالوگ ساختی میتونی کد زیر رو در مانیفست در خط اکتیویتی دیالوگ اضافه کنی که اکتیویتی مورد نظر بصورت دیالوگ باز بشه

android:theme="@android:style/Theme.Dialog"

leadstar71
جمعه 19 اردیبهشت 1393, 20:37 عصر
روش ساخت اکتیویتی هم اینجوری بوده:
اول یک xml ساختم و بعد اون سه تا دکمه رو درونش قرار دادم و بعد در فایل جاوام. کد زیر رو قرار دادم:
//تعریف دیالوگ
//Joziat.this = نام اکتیویتی من هست
final Dialog dl = new Dialog(Joziat.this);
///تنظیم لایه گرافیکی برای نمایش
dl.setContentView(R.layout.cdialog);
///تنظیم عنوان
dl.setTitle("درباره ما");
///تعریف تکست ویو
//که داخل لایه گرافیکی دیالوگ قرارش دادم
TextView txt = (TextView) dl.findViewById(R.id.textView1);
///تنظیم متن
txt.setText("تیم برنامه نویسی اسفندونه \n برای دیدن آموزش های بیشتر به سایت ما \n" +
"www.Esfandune.ir \n مراجعه کنید");
//دکمه
Button btn = (Button) dl.findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// پاک شد دیالوگ
dl.dismiss();

}
});
dl.show();



موقعی که برگشت هم میزنم میره داخل همون اکتیویتی دیالوگ. ولی من میخوام اصلاً اکتیویتی دیالوگ رو نشون نده. فقط خود دیالوگ

saeed_g21
جمعه 19 اردیبهشت 1393, 20:43 عصر
ولی من میخوام اصلاً اکتیویتی دیالوگ رو نشون نده. فقط خود دیالوگ

ببین الان کدی که گذاشتی خودش دیالوگ هست و هیچ مشکلی نداره نکنه چیزی که تو میخوای AlertDialog هست با Dialog اشتباه گرفتی ؟

leadstar71
جمعه 19 اردیبهشت 1393, 20:48 عصر
من سورس برنامه رو بزارم میتونین براش درست کنین. اگه برنامه دیوار رو دیده باشین موقعی که رو اطلاعات تماس کلیک میکنین اون صفحه میاد

saeed_g21
جمعه 19 اردیبهشت 1393, 20:59 عصر
نه ندیدم

ببین همچین چیزی می خوای

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
alertDialog.setIcon(R.drawable.ic_launcher);
alertDialog.setTitle("تایتل ");
alertDialog.setMessage("متن ");
alertDialog.setButton("متن باتن 1", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { }
});
alertDialog.setButton2("متن باتن 2", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { }
});
alertDialog.setButton3("متن باتن 3", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) { }
});
alertDialog.show();

leadstar71
جمعه 19 اردیبهشت 1393, 21:00 عصر
این کد الان میشه رو دکمه هاش کلیک کرد. و برای هرکدوم از دکمه های کد ساخت؟

saeed_g21
جمعه 19 اردیبهشت 1393, 21:06 عصر
بله کافیه کدهای خود رو در داخل { } در همه باتن ها بنویسی

public void onClick(DialogInterface dialog, int which) { //Inja }

leadstar71
جمعه 19 اردیبهشت 1393, 21:43 عصر
میشه یه نمونش مثلا واسه ارسال پیام به یک شماره بزاری داخل یک باتون؟

saeed_g21
جمعه 19 اردیبهشت 1393, 22:06 عصر
دوست عزیزم کافیه کد اراسال پیام کوتاه رو در محلی که در زیر مشخص کردم قرار بدی

alertDialog.setButton("ارسال پیام کوتاه", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// محل قرار دادن کد ارسال پیام کوتاه
}
});


راستی مجوز لازم برای ارسال پیام کوتاه یادت نره در مانیفست قرار بدی

leadstar71
شنبه 20 اردیبهشت 1393, 09:18 صبح
آقا واقعاً دستتون درد نکنه. کار منو راه انداختین. همون alertfialog بود. الان درستش کردم ولی طرحش هم میشه عوض کرد یا سفارشی ساخت؟

leadstar71
شنبه 20 اردیبهشت 1393, 19:58 عصر
من الان همه چی رو ساختم و کارم تا اینجا راه افتاده. الان میخواستم ببینم میشه تمش رو عوض کرد یا نه؟ تم آلرت دیالوگ رو

reza_azizi2010
شنبه 20 اردیبهشت 1393, 22:18 عصر
شما کلا میتونی یه صفحه واسه خودت طراحی کنی و هرچی لازم داری توش به سلیقه خودت بذاری و اون صفحه رو به دیالوگت اختصاص بدی. بعدش میتونی هرکدی خواستی بنویسی مثل کلیک لیسینر و ...


final Dialog mytestdialog = new Dialog(ActivityShow.this);
mytestdialog.getWindow().requestFeature(Window.FEA TURE_NO_TITLE);
/// !!baraye uncut kardan panjereye dialog estefade mishe ta ghahsang beshe
mytestdialog.setContentView(R.layout.quick_setting );

بعدش واسه معرفی کردن اشیای دیالوگت باید اسم دیالوگ رو قبل از معرفی بیار ، اینجوری :

Button save = (Button) mytestdialog.findViewById(R.id.btn_dialog_save);