【发布时间】:2016-07-15 03:00:11
【问题描述】:
在我的MainActivity class 中,我有 3 个标签 fragmentHome class、fragmentHot class 和 FragmentCategoryclass 的视图寻呼机
这里是fragmentCategory class:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view;
view = inflater.inflate(R.layout.fragmentcategory, container, false);
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.category_fragment, new TabCategoryFragment());
transaction.commit();
return view;
}
在TabCategoryFragment class,我有网格类别新闻,当单击项目网格时,我调用了:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Bundle bundle = new Bundle();
bundle.putString("category", arrDataZone.get(position).getZone_name());
bundle.putString("zoneid", arrDataZone.get(position).getZone_id());
ListCategoryFragment myFrag = new ListCategoryFragment();
myFrag.setArguments(bundle);
transaction.replace(R.id.category_fragment, myFrag,"listFramgnet");
transaction.addToBackStack("grid_category");
transaction.commit();
现在我想从MainActivity 调用ListCategoryFragment 中的方法或从FragmentCategory 调用ListCategoryFragment 中的方法。
因为我尝试从MainACtivity 调用FragmentCategory 中的方法:
linearPlayer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int number=viewPager.getCurrentItem();
Fragment fragment= adapter.getItem(number);
if (number==0) {
((FragmentHome)fragment).playAudioSerVice();
} else if(number==1) {
((FragmentHot)fragment).playAudioSerVice();
} else if( number==2) {
((FragmentNew)fragment).playAudioSerVice();
} else if( number==3) {
((FragmentCategory)fragment).playAudioSerVice();
}
}
});
它跑了。请给我你的想法或代码来做到这一点。
【问题讨论】:
-
要从Activity调用哪个方法?
-
@ρяσѕρєяK 不,我想从 MainActivty.class 或 FragmentCategory.class 调用 ListCategoryFramgnet.class 中的方法 playAudioService()
-
然后将其称为
((MainActivty)getActivity())..playAudioSerVice();这样做有什么问题吗? -
它跑得很好,所以我想从 FragmentCategory.class 中的方法 playAudioSerVice() 如果 ListCategoryFragment.class 显示,我可以在 ListCategoryFragment.class 中调用方法 playAudioService()
-
只是想知道为什么在不同的类中有相同名称的相同方法代码?我的建议是在 MainActivity 中创建一个方法,然后通过传递想要从 Fragments 播放的文件名从不同的 Fragment 调用它。有什么问题吗?
标签: android android-fragments fragment