بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

ورود از دو اکتیویتی به یک اکتیویتی واحد

مدیریت گفتگو
علی 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان

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

ممنون

نظرات

پاسخ‌ها 4

Denabit 10 سال پیش

سلام

 public class ActivityOne extends Activity {

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

Button btn = (Button) findViewById(R.id.btn);

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

Intent intent = new Intent(ActivityOne.this, ActivityThree.class);
intent.putExtra("FROMACTIVETY", "one");
ActivityOne.this.startActivity(intent);
}
});

}

}

////////////////////////////////////


public class ActivityTwo extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);

Button btn = (Button) findViewById(R.id.btn);

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

Intent intent = new Intent(ActivityTwo.this, ActivityThree.class);
intent.putExtra("FROMACTIVETY", "two");
ActivityTwo.this.startActivity(intent);
}
});

}

}

////////////////////////////////

public class ActivityThree extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);

Bundle extras = getIntent().getExtras();

if (extras != null) {

String fromActivity = extras.getString("FROMACTIVETY");

if (fromActivity.equals("one")) {
Toast.makeText(getApplicationContext(), "ActivityOne", Toast.LENGTH_LONG).show();
} else if (fromActivity.equals("two")) {
Toast.makeText(getApplicationContext(), "ActivityTwo", Toast.LENGTH_LONG).show();

}

}

}

}


نظرات

علی 10 سال پیش
ایولا . خیلی عالی خیلی ممنونم. جواب خیلی قشنگ و شیکی بود. مچکرم
Denabit 10 سال پیش
خواهش میکنم داداش،قابلی نداشت :)
علی 10 سال پیش

حالا ی چیز دیگه : میخام بدونم اگه داخل اکتیویتی 1 و 2 نباشیم چجوری میشه ؟

یعنی یک اکتیویتی واسط باشه که وقتی کلیک میشه وارد اکتیویتی سوم بشیم . چجوری بفهمیم کدوم درون کدوم اکتیویتی کلیک  شده ؟

نظرات

Hajhosseini 10 سال پیش
اینجا میتونید از یک متغیر استاتیک استفاده کنید. میتونه در کلاس G به نام currentActivity باشه. زمانی که وارد هر اکتیویتی میشید، اول این مقدار رو بخونید، بعد این کد رو بزنید: G.currentActivity = this
Reza 10 سال پیش

سلام

در Activity اول و دوم و در متد onPause بنویس :

@Override
protectedvoid onPause(){
G.fromActivity = this;
super.onPause();
}

fromActivity رو در کلاس G تعریف کن . ( آموزش 2 از بخش 5 )

و در اون Activity سوم با استفاده از خاصیت simpleName همین fromActivity ، میشه فهمید از کجا اومده .

نظرات

علی 10 سال پیش

ممنون از همه دوستان : روشی که دوست عزیز گفتن و پیادش کردمو گقتم اینجا بذارم شاید کسی مشکلش همین باشه به دردش بخوره : در اکتیویتی ای که گفتیم واسط هست و اکتیویتی سوم درون اون باز میشه علاوه برپارامترهایی که میخایم بفرستیم یک پارامتری میفرستیم با این مضمون :

 Intent intent = new Intent (G.currentActivity,ThirdActivity.class)
intent.putExtra("ACTIVITY",G.currentActivity);
G.currentActivity.startActivity(intent);
حالا در اکتیویتی سوم کد زیر رو مینویسیم

Bundle extras = getIntent().getExtras();
if (extras != null) {
position = extras.getInt("POSITION");
}

//Toast.makeText(G.context, extras.getString("ACTIVITYNO"), Toast.LENGTH_LONG).show();
if(extras.getString("ACTIVITYNO").equals("FirstActivity")) { ....}
else if(extras.getString("ACTIVITYNO").equals("SecondActivity"){......}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .