簡體   English   中英

在活動中呼叫其他活動?

[英]Call other activities in an activity?

假設我有2個活動(ActivityOne和ActivityTwo)。 如何從ActivityOne調用ActivityTwo? 那我該如何從ActivityTwo返回到ActivityOne? 例如,我有一個列表視圖,其中包含主機電話上的所有聯系人。 當我點擊聯系人時,另一個活動會顯示信息並允許編輯該聯系人。 然后,我可以單擊“后退”按鈕,然后回到ActivityOne所在的確切狀態,然后再調用ActivityTwo。 我當時在想一個Intent對象,但不確定。 有人可以發布一些代碼嗎?

在您的第一個活動(AcitvityOne)中,您可以致電

Intent intent = new Intent(this, ActivityTwo.class);
startActivityForResult(intent, CODE);

然后您可以覆蓋

public void onActivityResult(int reqCode, int resultCode, Intent data) {

接收此活動的結果

在您的示例中,您似乎想在活動1和活動2(即您要編輯的聯系人的引用)之間傳遞數據,因此您應該在活動1中使用捆綁軟件。

    Intent myIntent = new Intent(this, ActivityTwo.class);
    myIntent.putExtra("CONTACT", position);
    this.startActivity(myIntent);

“ CONTACT”是鍵,而position是一個值(position之前已經定義,它可以是您想要的任何值,例如整數。根據類型,檢索它的方式略有不同,請注意下面的活動二代碼中的getInt())。

在活動二中,在onCreate()中

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        contact = extras.getInt("CONTACT");
        /**Do what you want with the integer value you have retrieved**/
    }

至於您的其他問題,后退按鈕會將當前的活動從任務堆棧的頂部刪除,因此,您通常以與離開時相同的狀態返回上一個活動。

但是,如果手機的內存不足,Android可能會終止進程或Activity,因此從理論上講,您以前的Activity可能不會以與離開狀態完全相同的狀態顯示。 如果有任何重要數據,則應在啟動活動二之前保存它。 如果您只是想以用戶友好的狀態返回到“活動一”,則可以依靠“后退”按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM