PDA

View Full Version : دریافت بله خیر از کاربر به توجه به این شکل



raha_jon
سه شنبه 08 مهر 1393, 09:37 صبح
سلام و ادب خسته نباشید ببخشید چطوری می تونم همپین کدی را طراحی کنم؟
http://s.cafebazaar.ir/1/upload/screenshot/com.khorshidwares.cardiag4.jpg
لطفا راهنمایی کنید

majnoon110
سه شنبه 08 مهر 1393, 09:56 صبح
دقیقا مشکلتون کجاس؟

raha_jon
سه شنبه 08 مهر 1393, 10:13 صبح
مشکلم اینه که این کار واسم مفهمومی نشده
و اگه بشه هم شاید نتونم دقیق پیاده سازی کنم

اما می تونم ما settext مقادیری را برای تکست ویو ها ست کنم اما با این کار باید چند صد خط کد داشته باشم

گفتم ببینم راه آسان چیه؟
تشکر

raha_jon
سه شنبه 08 مهر 1393, 10:46 صبح
لطفا راهنمایی کنید

Amin-rz
سه شنبه 08 مهر 1393, 11:10 صبح
دو تا دکمه برای "بله" یا "خیر" کاربر بذار.
بعد روی هر کدوم کلیک کرد توی رویداد اون دکمه کد بنویس که فلان کار رو انجام بده(مثلا یه تکست دیگه نشون بده)

raha_jon
سه شنبه 08 مهر 1393, 13:12 عصر
تشکر اما با این کار باید خط چند صد خطی بنویسم با چند تا کلاس!!

Amin-rz
سه شنبه 08 مهر 1393, 13:23 عصر
شما دقیقا توضیح بدید می خواید چکار کنید تا من نمونه کد بدم.

raha_jon
سه شنبه 08 مهر 1393, 13:38 عصر
ببینید
من چند تا سر فصل دارم

عیب یابیه

مثلا

موتور :مثلا داخل موتور میخوام قطعاتشو عیب یابی کنم
بدنه:داخل بدنه می خوام مثلا به برخی قطعات بدنه را عیب یابی کنم


دقیقا مانند عیب یابی این
http://cafebazaar.ir/app/com.khorshidwares.cardiag/?l=fa

Amin-rz
سه شنبه 08 مهر 1393, 15:31 عصر
بالای
protected void onCreate(Bundle savedInstanceState)
اینو اضافه کن:
int i;
در واقع i شماره سوال هست.
بعد داخل onCreate جایی که سایر کدهاتو می نویسی یه تکست ویو (برای نمایش سوالات) و دوتا دکمه (برای جواب بله یا خیر) تعریف کن:
final TextView tv = (TextView) findViewById(R.id.textView1);
final Button btnYes = (Button) findViewById(R.id.Button1);
final Button btnNo = (Button) findViewById(R.id.Button2);
بعد سوال اول رو به کاربر نشون میدیم:
tv.setText("متن سوال اول");
و به برنامه میگیم که سوال اول هستیم:
int i = 1;
حالا رویداد کلیک دو تا دکمه برای جواب های بله یا خیر رو می نویسیم:

btnNo.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

// جواب کاربر خیر است پس سوال بعدی را نمایش می دهیم
if(i==1)
tv.setText("متن سوال دوم");
else if(i==2)
tv.setText("متن سوال سوم");
else if(i==3)
tv.setText("متن سوال چهارم");
else if(i==4)
tv.setText("متن سوال پنجم");
else if(i==5)
tv.setText("متن سوال ششم");
else if(i==6)
tv.setText("متن سوال هفتم");

i=i+1;

}

});


btnYes.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

// جواب کاربر بله است پس عیب یابی می کنیم
if(i==1)
tv.setText("جواب مشکل اول");
else if(i==2)
tv.setText("جواب مشکل دوم");
else if(i==3)
tv.setText("جواب مشکل سوم");
else if(i==4)
tv.setText("جواب مشکل چهارم");
else if(i==5)
tv.setText("جواب مشکل پنجم");
else if(i==6)
tv.setText("جواب مشکل ششم");
else if(i==7)
tv.setText("جواب مشکل هفتم");

}

});


با این کار اگه جواب کاربر خیر باشه به سوال بعد میره و اونو نشون میده و اگه جواب کاربر بله باشه نگاه به شماره سوال میکنه و جوابشو میده.

raha_jon
سه شنبه 08 مهر 1393, 15:43 عصر
بنظرتون تو این کد بتونم به صورت هرمی جلو برم؟؟

majnoon110
سه شنبه 08 مهر 1393, 17:48 عصر
یه کار دیگه هم میتونید بکنید
یعنی اگر تعداد سوال و جواب ها زیاد باشه
از یک دیتابیس استفاده کنید و یک جدولی که شامل فیلد های زیر باشه
1- آی دی سوال
2- متن سوال
3- ای دی سوالی که در صورت جواب «بله» نمایش داده میشه
4- آی دی سوالی که در صورت جواب « خیر» نمایش داده میشه

این طوری با اولین سوالی که نمایش میدید مشخص می کنید اگر سوال طرف مقابل بله بود. فیلد شماره ی 3 رو بخونه و با استفاده از این فیلد که یک آیدی هست، بره و متن سوالی که برابر اون آیدی هست رو بیاره و نمایش بده...

حالا اگر یک جواب نهایی هم دارید
باید یک فیلد شماره ی 5 هم اضافه کنید
که در صورتی که مقدارش true یا مثلا 1 بود دیگه دکمه های بله و خیر رو نشون نده!

البته دوستمون خیلی زحمت کشیدن اما
اینطوری لازم نیست این همه if و switch بگذارید.

raha_jon
سه شنبه 08 مهر 1393, 18:22 عصر
تشکر من تو این چطوری
مثلا وقتی بله را داد و رفت سوال دیگه چطوری دکمه ی بله پنهون بشه و باتون جدید نمایش داده بشه؟
تشکر

majnoon110
سه شنبه 08 مهر 1393, 22:30 عصر
ببینید اگر دکمه ی بعدی هم بله خیر بود که نیازی به تغییر نیست و همون تابع قبلی پیاده میشه
اما اگر بخواید دکمه ی دیگری نمایش بدید و این رو پنهان کنید
باید دکمه ها رو در یک محل قرار بدید و بعد در on creat دکمه رو پنهان کنید به این شکل:

bb.setVisibility(View.INVISIBLE);

و وقتی که شرط برقرار شد قبلی رو پنهان کنید و جدیده رو اشکار کنید


bb.setVisibility(View.VISIBLE);
bt2.setVisibility(View.INVISIBLE);

saeed_g21
سه شنبه 08 مهر 1393, 22:55 عصر
بنظرم بجای INVISIBLE از GONE استفاده کنید خوبه چون INVISIBLE فقط باتن یا هر عنصر دیگه رو مخفی میکنه ولی GONE به غیر از مخفی سازی حتی (به زبان ساده) پهنای اشغال شده توسط عنصر رو نیز حذف میکنه

mfaridi
سه شنبه 08 مهر 1393, 23:09 عصر
بنظر منم از دیتابیس استفاده کن بهتر هست چون با یک خط کد کار هزار بار تکرار شرط رو انجام میدی و کیفیت برنامتم از نظر کدنویسی بهتر میشه
اگه هم از دیتابیس استفاده نکردی از ارایه کمک بگیر ولی دیتابیس بهترین راه هست