我有一个片段类,我正在进行Async
调用。现在我在Fragment类中创建一个方法,我希望在MainActivity
类中调用此方法。 MainActivity
类动态加载Fragment
类。
代码段是:
public class MainHandlerFragment extends Fragment{
public boolean getDetails(User user){
if(user==null)
return false;
else
return true;
}
}
MainActivity.java
我正在打电话
MainHandlerFragment fragment = new MainHandlerFragment(user);
fragment.getDetails(); // But i am getting NullPointerException.
如何在MainActivity中调用fragment类的方法?
答案 0 :(得分:2)
以下是一个例子:
public class MyFragment extends Fragment {
public static final String TAG = “MyFragment.TAG”;
// Implementation follows.
}
public class MyActivity extends Activity {
public MyFragment getMyFragment() {
final FragmentManager manager = getFragmentManager();
return (MyFragment) manager.findFragmentByTag(MyFragment.TAG);
}
public void invokeMethodFromMyFragment() {
final MyFragment fragment = getMyFragment();
if (null != fragment) {
fragment.getDetails();
}
}
}
这假定您的MyFragment
交易在提交时包含MyFragment.TAG
标记。
答案 1 :(得分:0)
FragmentClass fragment = (FragmentClass) getFragmentManager().findFragmentById(
R.id.ll_fragment1);
fragment.fragmentMethod();
在您的活动中尝试此操作,您可以从活动中调用片段方法
答案 2 :(得分:0)
尝试拨打
fragment.getDetail(user);
使用事务类的add()或replace()方法完成事务后....还有commit()它。
希望它能奏效。