【发布时间】:2015-03-11 21:44:43
【问题描述】:
有没有办法将片段发送到活动?或者有没有更好的实现方法适合我的使用?
我有一个 gameOneFrag 和 gameTwoFrag。
例如:从一个片段中,我想在一个活动中打开其中一个(取决于在片段中按下了哪个按钮)。我可以做一个 FragmentTransaction 并用任何游戏片段替换当前片段。但我更愿意打开一个新的活动“GameActivity”,并发送一个游戏片段作为额外的东西。
我在想这样的事情:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//listView.getItemAtPosition(position).getFrag() instead of ;
Intent intent = new Intent(getActivity(), GameActivity.class);
intent.putExtra("GAME_TYPE", gameOneFrag );
startActivity(intent);
}
比在 GameActivityFragment 中
Fragment frag = getIntent().getExtras().getFragment("GAME_TYPE");
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(ff.getId(), frag)
.commit();
}
或者我真的必须让每个游戏都成为一个活动并一起跳过 GameActivity“容器”吗?
值得一提的是,我有一个游戏类,我打算在其中存储片段。例如
Game one = new Game(new GameOneFragment());
我以后可以调用 one.getFragment();
【问题讨论】:
-
哦,是的,我做过一次。但它并不漂亮。 stackoverflow.com/q/24081101/2413303 如果按照我在此处的回答stackoverflow.com/a/28480952/2413303 使用
Otto与活动进行交流,那么您真的会更好 -
去看看那个tmr,对我来说似乎是新东西:)