如何从Activity B调用包含intent的函数(在Activity A中)

时间:2018-02-27 11:45:08

标签: java android android-fragments android-intent

我正在按下后退按钮时从活动中调用一个函数(存在于片段中)

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

主页是应用活动的片段

在show function中我调用了一个意图

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:Fragment Home {5deabab}未附加到Activity

我的结论是app正在使用show作为函数,因此它不了解home。

所以我的问题是如何调用&#34;意图&#34;某些活动中的某些功能或其他活动的片段存在?

3 个答案:

答案 0 :(得分:0)

看起来没有在正确的范围内调用startActivity。尝试指定范围并按以下方式调用它:activity.startActivity(new Intent(activity, Chat_topic_layout_for_user_group.class)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

为什么不将Show()功能移到Activity?对于标题,在Home fragmentgetTitles()中创建一个getter函数。现在,当事件发生时,直接在传递Show()的活动中触发(*HomeFragment*.getTitle() , *Activity*.this)函数。你的头衔是static吗?因为您直接致电new Home()。如果是这样的话,那么在活动中调用Show()函数就不会有任何问题。如果不符合标准,您可以详细解释您的要求。