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


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
طراحی های مختلف در linearLayout

طراحی های مختلف در linearLayout

#2
سلام دوست عزیز
شما میتونید از یه صفحه ی ساده برای این کار استفاده کنید
که شامل یه تکست ویو برای سوال
 و چهار تا چک باکس یا ردیو باتن برای گزینه هاتون
و دو تا دکمه برای صفحه ها

سوالاتون رو نمیدونم چطوری میخوایید لود کنید ولی من چند تا راه ساده بهتون پیشنهاد میکنم
1. بهترین راهش اینه که یه دیتابیس بسازید و از دیتابیس استفاده کنید (که اگه تازه وارد هستید شاید یه خورده گیج کننده باشه براتون )
برای ساخت دیتابیس و نحوه ی استفاده از اون میتونید از این کلید ها استفاده کنید .


2. میتونید ازفایل تکست استفاده کنید که بنظرم روش خوبیه
 

3.و ساده ترین روش و بی دردسر ترینش که البته اصولی نیست اینه که سوالات رو داخل خود برنامه کپی کنی به صورت رشته یا ArrayList

خلاصه از روش های متفاوت و زیادی میتونی استفاده کنی برای دریافت سوال ها و کلید ها

حالا کافیه یه عدد رو به عنوان شماره سوال در نظر بگیرد و باز هر بار زدن دکمه ها اون شماره رو کم یا زیاد کنید و دنبال این کمو زیاد کردن متن داخل تکست ویو رو عوض کنی

حالا باید گزینه های انتخاب شده رو یه جایی نگه داری تا بتونی در اخر بگی درسته یا اشتباه این رو هم کافیه یه ارای لیست در نظر بگیری و عدد های 0تا 4 رو داخلش بزاری با استفاده از همین چک باکس اگه 0 بود پاسخ داده نشده و اگه یکی از گزینه های 1 تا 4 باشه ینی پاسخ داده شده و باید با کلید سوالهایی ک داری مطابقت بدی
کدی که اینجا توضیح دادم رو مینویسم براتون به یه شکل ساده ; میتونید اونو تغییر بدید و به شکل دلخواه در بیارید

کد:
  int count = 0 ;
   ArrayList<Integer> answers , Question_key ;
   ArrayList<String> Question_text ;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.test);
       answers = new ArrayList<>();

       Question_text = new ArrayList<>() ;
       Question_key = new ArrayList<>() ;

       Question_text.add("سوال 1");//اضاقه کردن سوال ها
       Question_key.add(1);//اضاف کردن کلید سوال ها
       Question_text.add("سوال 2");
       Question_key.add(4);
       Question_text.add("سوال 3");
       Question_key.add(2);
       Question_text.add("سوال 4");
       Question_key.add(3);
       Question_text.add("سوال 5");
       Question_key.add(3);

       for (int i = 0 ; i<Question_text.size() ; i++){
           answers.add(0);//اضافه کردن پاسخ 0
       }

       final TextView tvQuestion = (TextView)findViewById(R.id.question);
       final RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radiogroup);

       radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
           @Override
           public void onCheckedChanged(RadioGroup group, int checkedId) {
               int answer = 0 ;
               switch (checkedId){
                   case R.id.radio1 :
                       answer = 1 ; // تنظیم پاسخ
                       break;
                   case R.id.radio2 :
                       answer = 2 ;
                       break;
                   case R.id.radio3 :
                       answer = 3 ;
                       break;
                   case R.id.radio4 :
                       answer = 4 ;
                       break;
               }
               answers.remove(count); // حذف پاسخ قبلی
               answers.add(count,answer); //اضافه کردن پاسخ جدید
           }
       });
       final RadioButton radioButton1 = (RadioButton)findViewById(R.id.radio1);
       final RadioButton radioButton2 = (RadioButton)findViewById(R.id.radio2);
       final RadioButton radioButton3 = (RadioButton)findViewById(R.id.radio3);
       final RadioButton radioButton4 = (RadioButton)findViewById(R.id.radio4);


       final Button btn_next = (Button)findViewById(R.id.next);
       final Button btn_previous = (Button)findViewById(R.id.previous);
       btn_next.setText("بعدی");
       btn_previous.setText("قبلی");
       tvQuestion.setText(Question_text.get(count));
       btn_next.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (Question_text.size()-1>count) {
                   count++;
                   tvQuestion.setText(Question_text.get(count));
                   btn_previous.setActivated(true);
                   radioButton1.setChecked(answers.get(count) == 1);//علامت زدن پاسخ قبلی
                   radioButton2.setChecked(answers.get(count) == 2);//
                   radioButton3.setChecked(answers.get(count) == 3);//
                   radioButton4.setChecked(answers.get(count) == 4);//
               }else if(Question_key.size()-1>=count){
                   count++;
                   btn_next.setText("پایان");//تغییر متن دکمه ی بعدی بع پایان
               }else {// نمایش نتیجه و پاسخ نامه
                   radioGroup.setVisibility(View.INVISIBLE);
                   btn_next.setVisibility(View.INVISIBLE);//مخفی کردن دکمه ها
                   btn_previous.setVisibility(View.INVISIBLE);
                   String answer_sheet = "پاسخ صحیح - پاسخ شما" ;
                   for (int i = 0 ; i<answers.size() ; i++){
                       answer_sheet+="\n"+ answers.get(i) + " - " + Question_key.get(i);
                   }
                   tvQuestion.setText(answer_sheet);
               }
           }
       });

       btn_previous.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (count>0) {
                   count--;
                   btn_next.setText("بعدی");
                   tvQuestion.setText(Question_text.get(count));
                   radioButton1.setChecked(answers.get(count)==1);
                   radioButton2.setChecked(answers.get(count)==2);
                   radioButton3.setChecked(answers.get(count)==3);
                   radioButton4.setChecked(answers.get(count)==4);
               }else{
                   btn_previous.setActivated(false);
               }
           }
       });

   }

موفق باشید
پاسخ
 سپاس شده توسط admin


پیام‌های این موضوع
طراحی های مختلف در linearLayout - توسط mahdi.39 - ۱۳۹۵/۰۲/۲۹, ۰۲:۱۴ ب.ظ
RE: طراحی های مختلف در linearLayout - توسط aliasghar - ۱۳۹۵/۰۲/۳۱, ۰۹:۲۵ ق.ظ
RE: طراحی های مختلف در linearLayout - توسط mahdi.39 - ۱۳۹۵/۰۳/۰۲, ۱۱:۲۱ ق.ظ

پرش به انجمن:


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