我以前从未使用过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/

10-13 07:54