انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کاستوم دیالوگ در برنامه نویسی اندروید

کاستوم دیالوگ در برنامه نویسی اندروید

#1
سلام من این دوتا کلید رو خوندم

http://kelidestan.com/keys/keys.php?key=227

http://kelidestan.com/keys/keys.php?key=2554

اما متوجه نشدم که :
من داخل main activity یه button دارم که می خوام با انتخاب کردن اون کاستوم دیالوگ باز بشه و با دکمه ای که روش هست بسته بشه. چطور میتونم این کار رو بکنم؟
لطفا راهنمایی کنید.

 
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#2
دوست عزیز شما میتونید طبق لینک هایی که ادمین داده به راحتی عمل کنید اما اگه بخوایم ساده تر توضیح بدیم
اول باید یه دیگالوگ تعریف کنید به این صورت :

کد:
final Dialog dialog= new Dialog(Activity.this ) ;

این کد هم برای خوندن xml سفارشی شده

کد:
dialog.setContentView(R.layout.dialog);

برای حذف titel  از این کد استفاده میشه

کد:
        dl_img.getWindow();
        dl_img.requestWindowFeature(Window.FEATURE_NO_TITLE);

بعد یه فایل xml ، برای دیالوگ سفارشی شده  در res میسازیم برای مثال :

کد:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/bgdialog"
    android:orientation="vertical" >
    <Button
        android:id="@+id/btncancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/etsearch"
        android:layout_below="@+id/etsearch"
        android:layout_marginRight="24dp"
        android:text=" Cancel " />
</RelativeLayout>

 حالا برای نمایش از این کد :

کد:
dialog.show();

و برای عدم نمایش از این کد :

کد:
dialog.dismiss();
//یا
dialog.cancel();
پاسخ
 سپاس شده توسط mkhv1378 ، admin

کاستوم دیالوگ در برنامه نویسی اندروید

#3
با سلام
دوست عزیز می شه در مورد این خط بیشتر توضیح بدید

کد:
        dl_img.getWindow();
        dl_img.requestWindowFeature(Window.FEATURE_NO_TITLE);

dl_img چی هست و کارش چیه؟
با تشکر
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#4
سلام
اینجا شما به جای dl_img از dialog استفاده کنید

کد:
final Dialog dialog= new Dialog(Activity.this ) ;

از اینجا یه دیالوگ با نشانه ی dialog  یا هر چیز دلخواهی تعریف میکنیم و برای حذف تایتل نمایش یا عدم نمایش و ... استفاده میکنیم
امیدوارم متوجه منظورم شده باشید
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#5
دوست عزیز قبلا هم از این استفاده کرده بودم منتها خطای force close میده

کد پی‌اچ‌پی:
dialog.getWindow();
        
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

ولی بازم خطا داره!!!!
شما اگه مشکل و متوجه شدید ممنون می شم بگید
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#6
خب شما فایل xml ساختید  اصن ؟
بعد هر جا خواستید دکمه های یه دیالوگ رو تعریف کنید باید طبق دیالوگ و اکتیویتی تعریف کنید مثلا شما میخوایید داخل اکتیویتی که هستید یه دکمه داخل یه دیالوگ رو تعریف کنید باید به این صورت تعریفش کنید (احتمالا مشکلتون از اینجا بوده ) :

کد:
Button btn = (Button) dialog.findViewById (R.id.btn);

btn ما در اینجا در یه فایل xml دیگس فقط قبلش باید دیالوگمون رو تعریف کنیم که بتونه پیدا کنه
امیدوارم منظورمو فهمیده باشید
برای راهنمایی  بیشتر ارورتون رو هم بفرستید تا بیشتر کمکتون کنم  Wink
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#7
دوست عزیز کل کدو میذارم براتون تا بهتر متوجه مشکل شوید
در ضمن فایل  xml تعریف شده!!

کد پی‌اچ‌پی:
final Dialog dialog = new Dialog(MainActivity.this);
        
dialog.setContentView(R.layout.dialogboxcustom);
        
dialog.setTitle("خروج از برنامه");

        
// set the custom dialog components - text, image and button
        
TextView text = (TextViewdialog.findViewById(R.id.text);
        
text.setText("آیا می خواهید از برنامه خارج شوید؟");
        
        [
color=#FF0000]dialog.getWindow();
        
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);[/color]
        

        
Button Ok_btn = (Buttondialog.findViewById(R.id.dialogButtonOK);
        
// if button is clicked, close the custom dialog
        
Ok_btn.setOnClickListener(new OnClickListener() {
            @
Override
            
public void onClick(View v) {
                
                
finish();
                
            }
        });
        
Button No_btn = (Buttondialog.findViewById(R.id.dialogButtonNO);
        
// if button is clicked, close the custom dialog
        
No_btn.setOnClickListener(new OnClickListener() {
            @
Override
            
public void onClick(View v) {
            
                
dialog.dismiss();
            }
        });

        
dialog.show();

    } 

در قسمتی که مشخص کرده ام عینا کد شما را نوشته ام اما force close  میدهد!!!

 
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#8
دوست عزیز اگه اون خطی رو که مشخص کردید قبل از تعریف صفحه یعنی خط :

کد:
dialog.setContentView(R.layout.dialogboxcustom);

بزارید و این قسمت رو هم حذف کنید : مشکلتون درست میشه 

کد:
text.setText("آیا می خواهید از برنامه خارج شوید؟");

شما در  اینجا به دیالوگ گفتید اینو به عنوان تایتل در نظر بگیره در صورتی که ما تایتلمون رو میخواییم حذف کنیم  .
پس کدتون به این شکل تغییر پیدا میکنه :

کد:
final Dialog dialog = new Dialog(MainActivity.this);

        dialog.getWindow();
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        dialog.setContentView(R.layout.dialogboxcustom);


        // set the custom dialog components - text, image and button
        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText("آیا می خواهید از برنامه خارج شوید؟");
        

        Button Ok_btn = (Button) dialog.findViewById(R.id.dialogButtonOK);
        // if button is clicked, close the custom dialog
        Ok_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                
                finish();
                
            }
        });
        Button No_btn = (Button) dialog.findViewById(R.id.dialogButtonNO);
        // if button is clicked, close the custom dialog
        No_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            
                dialog.dismiss();
            }
        });

        dialog.show();

    }

موفق باشید Wink
 
پاسخ

کاستوم دیالوگ در برنامه نویسی اندروید

#9
علی اصغر عزیز ممنون از توجهت
سپاس
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان