رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام من دارم یه برنامه میسازم که وقتی کاربر به سوال 1 جواب میده بره سوال 2 ولی الآن سوال2 خود به خود بازه من میخوام تا زمانی که سوال 1 جواب داده نشده سوال 2 هم باز نشه و وقتی کاربر روی باتون(سوال2) کلیک میکنه یه کادر دیالوگ باز بشه و بگه باید برای باز شدن این مرحل به سوال 1 پاسخ داده بشه

ممنون میشم بگید چجوری باید این کار را انجام بدم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

سوال دوم خود به خود باز هست یعنی چی؟

چه جوری کد نوشتید؟

این که با استفده از یک if ساده قابل حل است

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

الآن من سوال یکم که نتونم جواب بدم سوال دو بازه 

به مثالی دیگر سوال دو  قفل باشه و در صورتی که جواب سوال یک درست بود قفل سوال دو باز بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

اول با if  چک کن که جواب سوال اول با کلمه ای که داری یکیه .اگه یکی بود بره اکتیویتی دوم و...

پیشنهاد من اینه که بری اول یری اموزش های برنامه نویسی رو یاد بگیری و تمرین کنی بعد اپ بساز تا اپ حرفه ای تر باشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

یه int داخل پرفرنس ذخیره کن !! که شماره سوالات رو بگیره !! زمانی که به سوال پاسخ درست داده شد 1 واحد اضافه کنه !!

و داخل دکمه ها بنویسید زمانی که شماره سوال 1 واحد از این int بزرگتر بود باز کنه در غیر این صورت toast بده !!

فراموش نکنید باید با پوزیشن کار کنید

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوست خوبم.یه سایت آموزشی توپ با کلی سورس آماده میخوام بهت معرفی کنم

حتما به سایت زیر سر بزن

openandroid.ir

angry.gif

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

دوست عزیز نمای کلی برنامه تو میگی بدونم چجوریه

یه مدل هست مثلا نوشته آزمون روی اون میزنی سوال اول میاد روی جواب کلیک میکنی میره سوال دوم

اینجوری که من فهمیدم شما سوالا رو زیر هم نوشتین روی هر سوال کلیک میکنه سوالش باز میشه. درسته؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آره خودشه


حالا من میخوام همه ی سوالا بسته باشه فقط سوال یک باز باشه و جواب اون که داده شده سوال دو باز بشه همینطوری ادامه پیداکنه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید بعد اینکه سوال اول و جواب داد یه متغیر بذارین و مقدارشو مثلا 1 قرار بدین. وقتی روی سوال دوم کلیک میشه شما همون متغیر و صدا بزنید و چک کنید اگه مقدارش بزرگتر مساوی 1 هست وارد سوال 2 بشه و بعد جواب دادن به سوال دوم مقدار متغیر و 2 بذارین و برای ورود به سوال سوم چک کنید مقدارش بزرگتر مساوی 2 باشه تا بتونه وارد سوال سوم بشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب شما میتونید بعد اینکه سوال اول و جواب داد یه متغیر بذارین و مقدارشو مثلا 1 قرار بدین. وقتی روی سوال دوم کلیک میشه شما همون متغیر و صدا بزنید و چک کنید اگه مقدارش بزرگتر مساوی 1 هست وارد سوال 2 بشه و بعد جواب دادن به سوال دوم مقدار متغیر و 2 بذارین و برای ورود به سوال سوم چک کنید مقدارش بزرگتر مساوی 2 باشه تا بتونه وارد سوال سوم بشه.

ممنون میشم بگید کداشا چجوری بنویسم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

یعنی 4 کلمه if رو باید براتون گذاشت ؟

مشکل شما فعلا برنامه نویسی است یعنی اول برید سراغ یادگیری برنامه نویسی بعد اقدام به ساخت برنامه کنید !

بهترین روش برای یادگیری برنامه نویسی دیدن فیلمهای آموزشی است !! مخصوصا برای C#

یعنی تلاش کنید برنامه ای که ماشین حساب هست رو بنویسید !! زود پیشرفت میکنید.

به مشکلات زیادی برخورد خواهید کرد اگر if که راحت ترین حالت ممکن در برنامه نویسی است رو بلد نباشید !!

ببخشید که کمی بد صحبت کردم !! اما اگر به این صورت پیش بره شما برای هر کاری میخواید سوال کنید :)

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یه نمونه کوچیک آماده کردم که متوجه بشین چیکار کنین

[shcode=java]package com.example.soal;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends Activity {

    Button btn1, btn2, btn3;

    public int var = 0;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        btn1 = (Button) findViewById(R.id.button1);

        btn2 = (Button) findViewById(R.id.button2);

        btn3 = (Button) findViewById(R.id.button3);

        btn1.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                var = 1;

                Toast.makeText(getApplicationContext(), "نمایش سوال اول", Toast.LENGTH_LONG).show();

            }

        });

       

        btn2.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                if(var>=1){

                var = 2;

                Toast.makeText(getApplicationContext(), "نمایش سوال دوم  ", Toast.LENGTH_LONG).show();

                }

                else

                {

                    Toast.makeText(getApplicationContext(), "لطفا سوال اول را پاسخ دهید ", Toast.LENGTH_LONG).show();

                }

            }

        });

       

   

        btn3.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View arg0) {

                // TODO Auto-generated method stub

                if(var>=2){

                    var = 3;

                    Toast.makeText(getApplicationContext(), "نمایش سوال سوم  ", Toast.LENGTH_LONG).show();

                    }

                    else

                    {

                        Toast.makeText(getApplicationContext(), "لطفا سوالات قبل را پاسخ دهید ", Toast.LENGTH_LONG).show();

                    }

            }

        });

       

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

}

[/shcode]

توی فایل xml سه تا دکمه قرار بدین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اون چیزی که من خواستم نشد بزار یه بار دیگه سبک برنامم را بگم

برنامه من دارای ده باتون با اسم های سوال 1 تا10 میباشد

الآن ده باتون من بازن و کاربر میتونه هرکدوما که میخواد جواب بده

حالا من میخوام 9تا از باتون ها قفل بشه و سوال یک که در یک layout دارای یک Edit Texو باتون هست جواب داده شد باتون دو با layout خودش و به همین ترتیب بره بالا و پاسخ سوال قبلی قفل باتون و lauout مربوطه بازبشه

ممنون میشم راهنمایی کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با سلام

ببین تصویر زیر رو ببین :

[align=center]8te7gym1wfey0d68n333.jpg[/align]

مرحله یک ( که همون سوال یک شما میشه ) در تصویر بالا بازه و باقی مراحل قفل هستند که کاربر وقتی روشون کلیک می کنید چنین خطایی میبینه :

[align=center]n0hadayu50azkhll8ewa.jpg[/align]

طبق گفته هاتون چنین چیزی نیاز دارید.

خب برای این کار شما یک راه حل ساده وجود داره اونم بدین شکل هستش. ابتدا یک کلاس با فیلد های زیر تهیه کنید مثل کلاس زیر :

[shcode=java]

public class Question {

    private String question;

    private boolean solved;

    public Question(String question,boolean solved){

        this.question = question;

        this.solved= solved;

    }

    public String getQuestion() {

        return question;

    }

    public void setQuestion(String question) {

        this.question= question;

    }

    public String isSolved() {

        return solved;

    }

    public void setQuestion(String solved) {

        this.solved= solved;

    }

}

[/shcode]

خب حالا شما یک لیست درست میکنی که 10 تا سوال رو میگیره ، یا 100 یا 1000 یا 1000000 فرقی دیگه نداره. هرچقدر دوست داری بهش سوال بده

فرضا اینطوری :

[shcode=java]

List myQuestions=new ArrayList();

myQuestions.add(new Question("سوال یک",false));

myQuestions.add(new Question("سوال دو",false));

myQuestions.add(new Question("سوال سه",false));

myQuestions.add(new Question("سوال چهار",false));

myQuestions.add(new Question("سوال پنج",false));

myQuestions.add(new Question("سوال شش",false));

// هرچقدر میخوای بهش سوال بده

// حتی اگه دوست داری سوالاتتو از دیتابیس بخون

[/shcode]

خب حالا میرسیم به مهمترین بخش برنامه که یک لیست هستش که سوالاتت رو نشون بده. پیشنهاد میکنم از یک adapter استفاده کنی بدین شکل :

[shcode=java]

public class QuestionAdapter extends BaseAdapter {

    private Activity context;

    private List questions;

    public FileAdapter(Activity context, List questions) {

        this.context = context;

        this.questions = questions;

    }

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {

            LayoutInflater mInflater = (LayoutInflater)

                    _activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

            convertView = mInflater.inflate(R.layout.row_question, null);

        }

        final Question question = questions.get(position);

        Button button = (Button)convertView.findViewById(R.id.btn_question);

        if(position==0||questions.get(position-1)).isSolved(){

    // یعنی سوال قبلی رو جواب داده و میتونه به سوال بعدی بره. اینجا سوال جدید رو براش باز میکنه

        }else{

           // یعنی سوال رو جواب نداده

        }

        // position==0    یعنی چی

        // برای این از این شرط استفاده کردم چون به هر حال سوال اول همیشه باز هستش و کاربر میتونه از سوال اولش روع بکنه  دقیقا مثل تصویر اول

        return convertView;

    }

}

[/shcode]

خب حالا طبق کدهای بالا شما به راحتی میتونید متوجه بشید کدوم سوال رو جواب داده یا کدوم سوال باید قفل باشه. حالا چطوری بهش بگم مثلا به سوالات پاسخ داده.

برای این کار کافیه یک متد بنویسی تو اداپتر بدین شکل :

[shcode=java]

    public void setSolved(int position){

         questions.get(position).setSolved();

    }

[/shcode]

هر موقع که از layout سوالا یا اکتیویتی نمایش سوالا برگشتی مشخصه کاربر به سوال جواب داده یا نه. شما هم طبق کدی که نوشتم براتون میدونید کدوم سوال رو باز کرده. کافیه متد رو از adapter فرا بخونید و مقدار position رو به setSolved بدید تا به صورت خودکار به اون سوال جواب بده و مقدارش رو true بکنه و برای اینکه لیستتون هم رفرش بشه کافیه متد notifyDataSetChanged() اداپتر رو صدا بزنید تا لیست به صورت خودکار رفرش بشه.

توجه : هیچ کدوم از کدها تست نشده و فقط نوشتمشون تا روند کار دستت بیاد.

امیدوارم متوجه شده باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنون میشم سورس این کدرا بهم بدید اگه نمیتوتید لطفا مرحله به مرحله در سطح مبتدی آموزشش را قراربدید

خیلی ممنون میشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...