رفتن به مطلب
  • 0

اتفاق عجیب در ارتباط بین اکتیویتی ها


hami0

سوال

تو  صفحه اصلی برنامه 6 دکمه وجود داره که با انتخاب هرکدوم برنامه به اکتیویتی مورد نظر میره .

و اتفاق عجیب اینه که دکمه ها به ترتیب کار میکنن یعنی اگر تو صفحه اصلی مثلا دکمه چهارم رو بزنیم برنامه کار نمی کنه ولی اگر دکمه ها رو به ترتیب  از اولی بزنیم برنامه کار می کنه !

یه حالتی هست انگار شرطی شده

این هم از خط کد صفحه اصلی

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class A extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.a);

        Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(A.this, B.class);
                A.this.startActivity(intent);

                Button btn2 = (Button) findViewById(R.id.btn2);
                btn2.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg) {
                        startActivity(new Intent(A.this, C.class));

                        Button btn3 = (Button) findViewById(R.id.btn3);
                        btn3.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View arg) {
                                startActivity(new Intent(A.this, D.class));

                                Button btn4 = (Button) findViewById(R.id.btn4);
                                btn4.setOnClickListener(new OnClickListener() {

                                    @Override
                                    public void onClick(View arg) {
                                        startActivity(new Intent(A.this, E.class));

                                        Button btn5 = (Button) findViewById(R.id.btn5);
                                        btn5.setOnClickListener(new OnClickListener() {

                                            @Override
                                            public void onClick(View arg) {
                                                startActivity(new Intent(A.this, F.class));

                                                Button btn6 = (Button) findViewById(R.id.btn6);
                                                btn6.setOnClickListener(new OnClickListener() {

                                                    @Override
                                                    public void onClick(View arg) {
                                                        startActivity(new Intent(A.this, G.class));
                                                    }
                                                });

                                            }
                                        });

                                    }
                                });

                            }
                        });

                    }
                });

            }
        });

    }
}

 

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

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

درود

تا جایی که من دیدم کدهاتون مشکلی ندارن... وظیفه تمامی Button ها اینه که از Activity A به اکتیویتی بعدی که میتونه B C E F G باشه بره ! :fekr:

مشکل جای دیگست به نظرم...

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

با یک Select Case میتونستین توی یک رویداد کلیک و توی چند خط کارتون رو خیلی شیک انجام بدید.

اگه این آموزش رو دیده باشید میتونید واسه توش از روشی که گفتم استفاده شده :

 

 

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

این اولین باریه که من میبینم کسی اینجوری onClick مینویسه حالا بگذریم

ببینید عزیز شما اومدین تودرتو کردین onclick باتنها رو یا به صورت جداگونه بنویسید اونا رو یا اینکه اکتیویتی رو از onClicklistener  ایمپلمنت کنین و اونجا به همه این خاصیت کلیک رو بدین یا اینکه یک متد کلی برای کلیک تعریف کنید و با استفاده از مشخصه id ویوهارو از هم جدا کنید و توی فایل xml با دستور android:onClick به همه باتنها این کلیک رو بدین

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

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


public class A extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.a);

        Button btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(A.this, B.class);
                A.this.startActivity(intent);
            }
        });

        Button btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg) {
                startActivity(new Intent(A.this, C.class));

            }
        });

        Button btn3 = (Button) findViewById(R.id.btn3);
        btn3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg) {
                startActivity(new Intent(A.this, D.class));

            }
        });

        Button btn4 = (Button) findViewById(R.id.btn4);
        btn4.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg) {
                startActivity(new Intent(A.this, E.class));
            }
        });

        Button btn5 = (Button) findViewById(R.id.btn5);
        btn5.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg) {
                startActivity(new Intent(A.this, F.class));
            }
        });

        Button btn6 = (Button) findViewById(R.id.btn6);
        btn6.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg) {
                startActivity(new Intent(A.this, G.class));
            }
        });

    }
}

 

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

حاجی چرا رویداد هارو تو در تو نوشتین ؟؟!!

شما اومدین دکمه A رو رویدادش رو نوشتید، بعد دکمه بعدی رو رویدادش رو داخل رویداد کلیک این دکمه و به ترتیب همه رو به همین شکل.مغزم تاب برداشت تا نیگاشون کنم.

 

اینجوری بنویسید »

public class MainActivity extends Activity implements View.OnClickListener {
    private Button mServerAddress;
    private Button mServerPort;
    private Button mSharedSecret;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form);

        mServerAddress = (Button) findViewById(R.id.address);
        mServerPort = (Button) findViewById(R.id.port);
        mSharedSecret = (Button) findViewById(R.id.secret);

        mServerAddress.setOnClickListener(this);
        mServerPort.setOnClickListener(this);
        mSharedSecret.setOnClickListener(this);
       
    }

    @Override
    public void onClick(View v) {
		switch (v.getId()){
		case R.id.address:
				//Your Statement Write Here
			break;
		case R.id.port:
				//Your Statement Write Here
			break;
			
		case R.id.secret:
				//Your Statement Write Here
			break;
		}
    }
}

از هر اینترفیسی خواستید استفاده کنید باید اونو به کلاستون Implements  کنید.

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

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...