我以前从未使用过Fragments,但是现在我有一个PlayerStatus片段,我想在两个不同的活动中使用它。它显示玩家状态:
public class PlayerStatus extends Fragment {
Player player;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.player_status, container, false);
return view;
}
public void setPlayer(Player player) {
this.player = player;
}
}
片段的布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:paddingTop="0dp" >
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
layout="@layout/money" />
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
layout="@layout/wins" />
<include
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
layout="@layout/level" />
</LinearLayout>
我通过这种方式在活动中得到它:
@Override
protected void onResume() {
super.onResume();
setContentView(R.layout.game);
fPlayerStatus = (PlayerStatus) getFragmentManager().findFragmentById(R.id.fPlayerStatus);
fPlayerStatus始终返回null。
我究竟做错了什么?
最佳答案
阅读有关如何启动片段,与活动连接/分离,commit()做什么的知识,以及使用片段时应该了解的其他一些基本功能
http://developer.android.com/guide/components/fragments.html
Fragment Basics Tutorial
浏览这些网站,您一定可以轻松地找到片段。
要使片段在这里工作,必须执行以下操作:
1.将片段添加到活动中
写以下
FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.YOUR_FRAGMENT_ID_AS_DEFINED_IN_XML , object of your fragment class)
fragmentTransaction.commit();
____________结束 - - - - - - - - - - - - - - - - -
FragmentTransaction的API中还有许多其他有用的方法,请通过上面的链接阅读它们,您将很容易使用它们
Lemme知道是否有帮助。
关于android - getFragmentById返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20566582/