我的片段活动中有一个片段。为了显示片段对话框,我的片段中有一个界面,该界面已在片段活动中实现。到目前为止没有问题。我可以弹出对话框。当用户点击它时,片段活动能够获得确定/取消按钮。
现在,我的问题是,有什么方法(替代方法,而不是在片段活动中创建另一个接口并在片段中实现它)让片段知道单击了确定/取消?
我的片段活动中有一个片段。为了显示片段对话框,我的片段中有一个界面,该界面已在片段活动中实现。到目前为止没有问题。我可以弹出对话框。当用户点击它时,片段活动能够获得确定/取消按钮。
现在,我的问题是,有什么方法(替代方法,而不是在片段活动中创建另一个接口并在片段中实现它)让片段知道单击了确定/取消?
由于您的活动应该知道它使用哪些片段,您可以轻松获取片段,将其转换为它的真实类(如果您不想要新接口)并调用它的公共方法:
ArticleFragment articleFrag = (ArticleFragment)
getSupportFragmentManager().findFragmentById(R.id.article_fragment);
if (articleFrag != null) {
// If article frag is available, we're in two-pane layout...
// Call a method in the ArticleFragment to update its content
articleFrag.updateArticleView(position);
} else {
// Otherwise, we're in the one-pane layout and must swap frags...
// Create fragment and give it an argument for the selected article
ArticleFragment newFragment = new ArticleFragment();
Bundle args = new Bundle();
args.putInt(ArticleFragment.ARG_POSITION, position);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
}
注意:此代码取自此处。