2017-08-03 148 views
1

我知道这个问题已经讨论了很多次,但没有解决方案适用于我。我有一个activityfragment附加和使用interface我打电话从我的activity的方法是用另一个替换此fragment。我希望这个方法也可以从我的新'片段'中调用一个方法,但是我实现了当达到这一点时应用程序崩溃。有人知道这个解决方案吗?我是Android开发新手。从活动调用片段方法Android

public void replacingMethod(String text){ 

    NewFragment newFragment = new NewFragment(); 
    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.replace(R.id.fragment_container, newFragment).addToBackStack(null).commit(); 

    NewFragment f = (NewFragment) getSupportFragmentManager().findFragmentById(R.id.new_fragment); 
    f.displayText(text); 
} 

我已经试过之前,更换后打电话到从newFragmentdisplayText(),但没有奏效。

+1

添加您的logcat堆栈 –

回答

0

您的片段应附加到活动以显示文本。正确的方法是使用Fragment#setArguments(Bundle)的参数将想要显示的文本传递给片段,然后使用Fragment#getArguments()将其发送到片段中。

+0

完美的炒作!谢谢! –

0

尝试使用R.id.fragment_container而不是R.id.new_fragment获取片段。

+0

不知道为什么,但它没有工作 –

+0

这将在稍后工作。一旦片段被附上(让我们说,在一个asynctask后,或其他)。正如@Potapov所说,当你创建片段时,最好的方法就是使用'Fragment#setArguments'。 –