آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ساخت اپ با صفحات متوالی

classmate  9 سال پیش  9 سال پیش
0 0

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

+1 0
نیازی به ساخت اکتیویتی های مختلف برای هر سوال نیست،سوالاتتون رو توی دیتابیس ذخیره کنید و توی یک اکتیویتی نمایشش بدین.برای سوالای مختلف کافیه اکتیویتی رو اپدیت کنید (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Criss  9 سال پیش
+3 0

برای اینکار دو اکتیویتی کافیه ، اگر برای جواب هم لازم باشه  نهایتا سه اکتیویتی لازم دارید،  اکتیویتی اول نمایش فهرست و  اکتویتی دوم نمایش سوال ها و نمایش گزینه های بله و خیر، و اکتیوتی سوم میتونه نمایش پاسخ نهایی باشه ، شما اطلاعات رو باید در آرایه ها و متغیر ها نگهداری کنید ، و نسبت به انتخاب های کاربر سوال بعدی رو فقط نمایش بدید و نتیجه انتخاب ها رو درون متغیر ها ذخیره کنید .

برای ساخت این برنامه اولین چیزی که به ذهنم رسید استفاده از سه آرایه SparseArray هست که یک آرایه مقدار index سوال و String رو در برداره و آرایه بعدی index سوالی هست که مطرح شده و مقدارش هم index سوال بعدی هست در صورت انتخاب بله و آرایه سوم هم مثل آرایه دوم هست فقط مقدار Iindex که بهش اشاره میشه برابر است با مقدار index سوال بعدی در صورت انتخاب خیر

ولی بنظرم راه بهتر این هست که شما یک Class بسازید که مقادیر زیر رو داشته باشه به شکل زیر (کد زیر Syntax درستی نداره و همینطوری نوشتم ! شما اونو توی محیط IDE باید تغییر بدید)

 Class Question {

int id = 0;
String title = "title ?"
int trueAnswer = 1;
int falseAnswer = 2;
boolean lastQuestion = false;

public Question(int id,String title,int trueAnswer,int falseAnswer,boolean lastQuestion){

}

public int[] getNextQuestion(){

int[] intArr = new int[2];
intArr [0] = trueAnswer ;
intArr [1] = falseAnswer ;
return intArr ;

}

public boolean isLastQuestion(){
retun lastQuestion;
}
}

به تعداد سوالهاتون یک نمونه به شکل کلاس بالا بسازید به هر سوال یک آیدی بدید که تکراری نباشه ، متن سوال رو هم وارد کنید و اگر بعد از این سوال قرار هست جواب رو نمایش بدید مقدار true برای lastQuestion وارد کنید ، و درون یک SparseArray از جنس Question  قرار بدید و به نسبت انتخاب کاربر مقدار trueAnswer یا falseAnswer و lastQuestion  رو بگیرید و اگر مقدار lastQuestion  برابر true نباشه برای انتخاب "بلی"مقدار trueAnswer برابر هست با index سوال بعدی در آرایه SparseArray  و در صورت انتخاب "خیر" مقدار falseAnswer  برابر است ا index سوال بعدی در آرایه SparseArray و  به همین ترتیب جلو برید

 

0 0
تعداد سوالات خیلی زیاده با این روش سخته . از دیتابیس استفاده میکنم . اما مشکل من اینه که چطور تو یک اکتیویتی سوالات پشت سر هم رو نشون بدم؟ (9 سال پیش)
+1 0
بهترین راهش همینی که دوستمون گفت باید از دیتابس استفاده کنیم.اتفاقا چون تعداد سوالات زیاد بهترین روش دیتابیس هستش.و یه نکته دیگه اگه سوالات کوتاه هستش میتونید از دایالوگ استفاده کنید به جای اکتیویتی این طوری بهتره به نظر من. (9 سال پیش)
پاسخ به سوال 
QUQU  9 سال پیش
0 0

ببینین شما باید از یه اکتیویتی استفاده کنین. کاری که میتونین کنین و خیلی هم تمیز میشه, اینه که دیتابیستون رو تغییر بدین و مثلا 2 تا ستون جدید اضافه کنین به هر مقدار. یه ستون  (مثلا به اسم T ) برای شماره سوالی که در صورت جواب بله باید نشون داده بشه, یکی هم شماره سوالی که در صورت جواب نه باید نمایش داده بشه (مثلا ستون F ).
حالا توی کد خیلی کارتون راحت و Dynamic میشه. به این صورت که میگین اگه جواب بله بود, مقدار مربوط به ستون T رو بگیره و اون شماره سوال رو جایگزین سوال فعلی کنه, اگه جواب نه بود, مقدار ستون F ـ اون row رو بگیره و اون سوال رو load کنه.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .