簡體   English   中英

如何從活動B調用包含意圖的函數(在活動A中)

[英]How to call function containing intent (in Activity A) from Activity B

當按下后退按鈕時,我正在從活動中調用函數(存在於片段中)

public void onBackPressed() {
    new Home().show(Home.home_list,app.this);                   
}

家是應用程序活動的一部分

在顯示功能中,我正在調用意圖

public void show(final ArrayList<tile_data> data, final Activity activity) {
    startActivity(new Intent(activity, Chat_topic_layout_for_user_group.class)
}

這樣做會給我錯誤:java.lang.IllegalStateException:片段Home {5deabab}未附加到Activity

我的結論是該應用程序將show作為函數使用,因此它不了解家庭。

所以我的問題是如何在某個活動的某個功能中調用存在的“意圖”,或者從其他活動中調用一個片段?

看起來startActivity沒有在正確的范圍內被調用。 嘗試指定范圍並像這樣調用它: activity.startActivity(new Intent(activity, Chat_topic_layout_for_user_group.class)

public void show(final ArrayList<tile_data> data, final Activity activity) {
    activity.startActivity(new Intent(activity, Chat_topic_layout_for_user_group.class));
}

為什么不將Show()函數移到Activity呢? 對於標題,在Home fragment getTitles()創建一個getter函數。 現在,當事件發生時,直接在傳遞(*HomeFragment*.getTitle() , *Activity*.this)的活動中觸發Show()函數。 您的標題是static嗎? 因為您直接調用new Home() 在這種情況下,在活動中調用Show()函數不會有任何問題。 如果不符合要求,您可以詳細解釋您的要求。

暫無
暫無

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

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