آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

علی  10 سال پیش  10 سال پیش
0 0

سلام دوستان

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

ممنون

 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
Denabit  10 سال پیش
+1 0

سلام

 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();

}

}

}

}


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

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

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

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

سلام

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

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

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

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

پاسخ به سوال 
علی  10 سال پیش
0 0

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

 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"){......}

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