![](/img/trans.png)
[英]Android Studio how do I check email address and password before starting a new activity
[英]Is there a way to check if I came from a specific activity before starting a new one?
假設我有 3 個活動: A
、 B
和C
。 並且所有 3 個活動都可以將用戶引導到另一個活動。 有沒有辦法檢查我是否來自特定活動?
例如,要到達 C,我可以從 B -> C 或 A -> C 移動。但是有沒有辦法檢查我是否來自 B?
您可以通過活動意圖傳遞數據有效負載。傳遞您的活動名稱以檢查用戶來自何處。
開始活動
Intent intent = new Intent(yourFromActivity.this,yourToActivity.class);
intent.putExtra(bundle_key,yourActivityName);
startActivity(intent)
在您的第二個活動中額外檢查意圖並獲取用戶來自的活動名稱。
@override
protected void onCreate(Bundle savedInstanceState){
//check extra key has in bundle.should same as host activity key
if(getIntent().hasExtra(bundle_key))
{
//get passed value from intent bundle
String activity = getIntent().getStringExtra(bundle_key,"");
if(activity.equel(yourActivityname)){
//put logic here
}
}
}
你可以通過兩種方式來做到這一點
在 Intent 中傳遞數據:
調用A類:
Intent intent = new Intent(A.this,C.class);
intent.putExtra("source","A");
startActivity(intent);
接收器類 C:在 onCreate 方法中
String source;
Intent intent = getIntent();
if(intent.hasExtra("source"))
{
source = intent.getStringExtra("source");
}
//Now you received source class name you can check and perform action
//accordingly.
if(source.equals("A")
{
//For Class A
}
else{
// For Class B
}
使用 startActivityForResult():
發件人類別:
Intent intent = new Intent(A.this,C.class);
startActivityForResult(intent);
接收器等級:
//In onCreate Method get calling activity name
getCallingActivity().getClassName();
嘗試這個
Intent intent = new Intent();
intent.setClass(A.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_A");
A.this.startActivity(intent);
Intent intent = new Intent();
intent.setClass(B.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_B");
B.this.startActivity(intent);
Intent intent = new Intent();
intent.setClass(C.this,Receiveractivity.class);
intent.putExtra("Uniqid","From_Activity_C");
C.this.startActivity(intent);
意向活動
//obtain Intent Object send from SenderActivity
Intent intent = this.getIntent();
/* Obtain String from Intent */
if(intent !=null)
{
String strdata = intent.getExtras().getString("Uniqid");
if(strdata.equals("From_Activity_A"))
{
//Do Something here...
}
if(strdata.equals("From_Activity_B"))
{
//Do Something here...
}
if(strdata.equals("From_Activity_C"))
{
//Do Something here...
}
........
}
else
{
//do something here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.