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



یک صفحه شانسیزمان کنونی: ۱۳۹۵/۰۹/۲۱، ۰۶:۵۵ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: zerocode
آخرین ارسال: moralschool
پاسخ 6
بازدید 1222

رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
یک صفحه شانسی

یک صفحه شانسی

#1
سلام من میخوام کدی برای button بنویسم که شانسی یک activity باز بشه یعنی این که از بین مثلا 3 activity یکی شانسی باز بشه و بعد از برشگت اگر دوباره بر روی دکمه کلیک کنیم اون activity قبل باز نشه یکی دیگه باز بشه مثل بعضی از بازی های رکوردی که هر دفعه که شروع میکنیم متفاوته
پاسخ

یک صفحه شانسی

#2
سلام.
ساختار برنامه اندروید به این صورت خواهد بود که یک لیست آرایه ای رشته ای (یک لیست آرایه ای از جنس رشته) تعریف می کنیم که در آن، ((نام سه Activity)) ذخیره می شود، بنابراین این آرایه دارای سه عنصر است. همچنین یک لیست آرایه ای عددی تعریف می کنیم که دارای سه عنصر با مقدار برابر صفر باشد (متناسب با سه عنصر آن لیست آرایه ای رشته ای).
برای آشنایی با نحوه تعریف یک لیست آرایه ای (ArrayList)، کلید زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=314

هر Activity که انتخاب شد، عنصر متناظر با آن در لیست آرایه ای عددی را به مقدار 1 تغییر می دهیم (یعنی این لیست آرایه ای عددی، معیار تشخیص این است که قبلا به Activity مورد نظر، رفته ایم یا خیر).
برای انتخاب شانسی یکی از سه Activity ، باید یک عدد تصادفی بین 1 تا 3 تولید کنیم و سپس بر اساس آن، یکی از عنصرهای لیست آرایه ای رشته ای را خواهیم داشت که همان نام Activity مقصد می باشد.
چون نام Activity مقصد را به صورت رشته داریم، بنابراین از روش استفاده از رشته ها (نام Activity به صورت رشته) برای رفتن به یک Activity باید استفاده کنیم که در کلید زیر شرح داده شده است :

http://www.kelidestan.com/keys/keys.php?key=252

برای تولید عدد تصادفی، کلید زیر را بخوانید (مبحثی در بخش آموزش java است و همان طور که می دانید، برنامه نویسی اندروید بر اساس زبان برنامه نویسی java می باشد) :

http://www.kelidestan.com/keys/keys.php?key=585

پس روند برنامه اندروید به این صورت خواهد بود که ابتدا یک عدد تصادفی تولید می کنیم و بر اساس آن عدد تصادفی، عدد متناظر با آن در لیست آرایه ای عددی را می خوانیم (مثلا اگر عدد تصادفی 3 تولید شده است، سومین عنصر موجود در لیست آرایه ای عددی را فراخوانی می کنیم)، اگر عدد مورد نظر برابر 1 بود، دوباره باید یک عدد تصادفی دیگر تولید کنیم (زیرا قبلا به آن Activity رفته ایم)، اما اگر برابر صفر باشد، ابتدا آن را به 1 تبدیل می کنیم و آنگاه به سراغ لیست آرایه ای رشته ای می رویم و رشته موجود در عنصر متناظر را می خوانیم که همان نام Activity است و بر اساس آن، کاربر را به Activity مورد نظر منتقل می کنیم (مثلا اگر عدد تصادفی برابر 3 بوده است، سومین عنصر لیست آرایه ای رشته ای را می خوانیم و بر اساس آن، کاربر را به Activity مورد نظر منتقل می کنیم).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moralschool

یک صفحه شانسی

#3
سلام
ممنون از توضیحات بسیار خوبتون
کاش همین رو بصورت کد هم راهنمایی می کردید چون بنده الان متوجه نحوه کار شده ام اما با اینکه چند بار مطلب و لینک هایی رو که معرفی کردید خوندم ، اما هنوز نتونستم اونو اجرا کنم
لطفا فرصت کردید همین رو بصورت کد هم بیان کنید ( برای همین 3 اکتیویتی )
بازم ممنون
پاسخ

یک صفحه شانسی

#4
خب آرایه من میشه این :

کد پی‌اچ‌پی:
String[] myarray = new String[]{activity1activity2activity3}; 

رندمم هم میشه این :

کد پی‌اچ‌پی:
int min 1;
            
int max 3;
                   
            
Random r = new Random();
            
int i1 r.nextInt(max min 1) + min

حالا من نمیدونم چجوری باید اینا رو به هم ربط بدم که اگه مثلا عدد 2 انتخاب بود بره به اکتیویتی 2

لطفا راهنمایی کنید
پاسخ

یک صفحه شانسی

#5
کدنویسی (یا چک کردن کدها) برای مواردی که قبلا شرح داده شده اند، غیر منطقی است (یعنی حتی اگر وقت هم داشتم، این کار رو انجام نمی دادم ).
مثلا شما اگر مبحث مربوط به چگونگی رفتن به یک Activity ، با استفاده از یک رشته (شامل نام Activity )، را با دقت خوانده بودید، متوجه می شدید که نام  Activity باید به طور کامل ذکر شود (یعنی در ابتدای آن، نام package برنامه اندروید قرار می گیرد).
در ضمن، برای 0 و 1 مربوط به ((چک کردن قبلا دیده شدن Activity ها))، از SharedPreferences نیز می توان استفاده کرد (به جای ساختن لیست آرایه ای عددی).

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط moralschool

یک صفحه شانسی

#6
من بجای استفاده از آرایه از این استفاده کردم و مشکل اولم حل شد یعنی بصورت تصادفی به یه اکتیویتی میره :
کد پی‌اچ‌پی:
Intent newIntent null;
        
Random rand = new Random();
 
        
int index rand.nextInt(4);
        switch (
index) {
            case 
0:
                
newIntent = new Intent(thisPage1.class);
            break;
            case 
1:
                
newIntent = new Intent(thisPage2.class);
            break;
            case 
2:
                
newIntent = new Intent(thisPage3.class);
            break;
            
        }
 
        
startActivity(newIntent); 
حالا فقط این مونده که اگه یه اکتیویتی رو یه بار باز کرد دفعه بعدی باز نشه یعنی از لیست رندم حذف بشه لطفا اینو راهنمایی کنید
بازم ممنون
پاسخ


پرش به انجمن:


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

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)