ایجاد پرش در برنامه
سلام
من برنامم به این صورته که وقتی یک دکمه رو میزنی یک سری image button که دارم GONE میشه و یک سری تصویر جدید نشون میده حالا میخام وقتی دکمه بک فشار داده میشه دوباره پرش کنه برنامه به همون مرحله قبل اما ظاهرا تو جاوا نمیشه لیبل زد و از GO TO استفاده کرد.بنظرتون چطوری پیادش کنم؟
ممنون
این کد منه میخام برنامه برگرده این بالا!
btnabs.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { btn1.setImageResource(R.drawable.abs10); btn2.setImageResource(R.drawable.abs11); btn3.setImageResource(R.drawable.abs12); btn4.setImageResource(R.drawable.abs13); btn5.setImageResource(R.drawable.abs14); btn6.setImageResource(R.drawable.abs15); btn7.setImageResource(R.drawable.abs16); btn8.setImageResource(R.drawable.abs17); btn1.setVisibility(View.VISIBLE); btn2.setVisibility(View.VISIBLE); btn3.setVisibility(View.VISIBLE); btn4.setVisibility(View.VISIBLE); btn5.setVisibility(View.VISIBLE); btn6.setVisibility(View.VISIBLE); btn7.setVisibility(View.VISIBLE); btn8.setVisibility(View.VISIBLE); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// btn1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { btn1.setVisibility(View.GONE); btn2.setVisibility(View.GONE); btn3.setVisibility(View.GONE); btn4.setVisibility(View.GONE); btn5.setVisibility(View.GONE); btn6.setVisibility(View.GONE); btn7.setVisibility(View.GONE); btn8.setVisibility(View.GONE); img2.setVisibility(View.VISIBLE); vp2.setVisibility(View.VISIBLE); background.setBackgroundColor(Color.WHITE); final VideoView vp2 = (VideoView) findViewById(R.id.vp2); Uri uri = Uri.parse("android.resource://" + G.packageName + "/" + R.raw.pingu002); vp2.setVideoURI(uri); vp2.start(); vp2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { vp2.start(); } }); } });
از آخر این قسمت بپره اون بالا












به طور مثال به کد زیر نگاه کن که مدام Continue رو چاپ می کنه
before:{
System.out.println("Continue");continue before;
}

از این کد استفاده کنید
@Override
public void onBackPressed() {
محل قرارگیری کدهای شما جهت اجرا شدن در زمان کلیک شدن برروی دکمه back
return;
}
از متود های VISIBLE بجای Gone برای بازگشت ایتم های رفته استفاده کنید در داخل این متود و این کد رو در اکتیویتی بزارید که قصد دارید هنگام برگشت از اون اکتیویتی اجرا بشه
به عنوان مثال حالت برعکس حالت شما:
@Override
public void onBackPressed() {
btn1.setVisibility(View.GONE); btn2.setVisibility(View.GONE); btn3.setVisibility(View.GONE); btn4.setVisibility(View.GONE); btn5.setVisibility(View.GONE); btn6.setVisibility(View.GONE); btn7.setVisibility(View.GONE); btn8.setVisibility(View.GONE);
btn1.setVisibility(View.GONE);
btn2.setVisibility(View.VISIBLE); btn3.setVisibility(View.VISIBLE); btn4.setVisibility(View.VISIBLE); btn5.setVisibility(View.VISIBLE); btn6.setVisibility(View.VISIBLE); btn7.setVisibility(View.VISIBLE); btn8.setVisibility(View.VISIBLE);
return;
}
امیدوارم جواب بگیرید موفق باشید

ببینید جواب میده؟ البته کلاس G رو اگه تعریف نکردید اسم اکتیویتی خودتتون رو بزارید مثلا : Mainactivity.this.finish();
@Override
publicvoid onBackPressed(){
btn1.setVisibility(View.GONE); btn2.setVisibility(View.GONE); btn3.setVisibility(View.GONE); btn4.setVisibility(View.GONE); btn5.setVisibility(View.GONE); btn6.setVisibility(View.GONE); btn7.setVisibility(View.GONE); btn8.setVisibility(View.GONE);
btn1.setVisibility(View.GONE);
btn2.setVisibility(View.VISIBLE); btn3.setVisibility(View.VISIBLE); btn4.setVisibility(View.VISIBLE); btn5.setVisibility(View.VISIBLE); btn6.setVisibility(View.VISIBLE); btn7.setVisibility(View.VISIBLE); btn8.setVisibility(View.VISIBLE);
G.currentActivity.finish();
return;
}

اینم یک متود که الان نوشتم واست:
publicvoid onBackPressed(){ backpress =(backpress +1);
btn1.setVisibility(View.GONE); btn2.setVisibility(View.GONE); btn3.setVisibility(View.GONE); btn4.setVisibility(View.GONE); btn5.setVisibility(View.GONE); btn6.setVisibility(View.GONE); btn7.setVisibility(View.GONE); btn8.setVisibility(View.GONE);
btn1.setVisibility(View.GONE);
btn2.setVisibility(View.VISIBLE); btn3.setVisibility(View.VISIBLE); btn4.setVisibility(View.VISIBLE); btn5.setVisibility(View.VISIBLE); btn6.setVisibility(View.VISIBLE); btn7.setVisibility(View.VISIBLE); btn8.setVisibility(View.VISIBLE);
Toast.makeText(getApplicationContext(),"اجرا شد ",Toast.LENGTH_SHORT).show();
if(backpress>1){
}
Toast.makeText(getApplicationContext()," نمیتوانید دوباره یک متود را اجرا کنید ",Toast.LENGTH_SHORT).show();
یا با بستن اکتیویتی مورد نظر در این قسمت حالت قبلی رو سیو کنید
}
احتمال زیاد این بیشتر به کارتون بیاد

If (btn1.getVisibility == View.Gone){
btn1.setVisibility(View.VISIBLE);
}else{
btn1.setVisibility(View.GONE);
}
خوب تو متود بک میتونی از این حالت استفاده کنی(از این شرط برای تک تکه مقادیرت)
خوب نحوه کارش اینجوریه وقتی کاربر دکمه بک گوشیشو میزنه این میاد شرط هایی که داخل متوده onbackpressed هستش رو چک میکنه و در اخر هرچیزی باشه معکوسش میکنی حالا اگه صدبارم زده بشه صد بار معکوس میشه
این تیکه کد کاره جنابه کریس هستش که گفتن این راه بهتری هست و منم گفتم براتون بزارم تا نتیجه بهتری بگیرید!
تشکر از کریس عزیز
موفق باشید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .