首页 新闻 搜索 专区 学院

关于FragmentManager.findFragmentById的工作原理

0
悬赏园豆:10 [已关闭问题] 关闭于 2015-11-23 00:27
package com.lihai.zapp;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.lihai.entry.R;
import com.lihai.zapp.fragment.FirstFragment;

public class LauncherActivity extends Activity {

  FragmentManager fm;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_launcher);

  fm = getFragmentManager();

  Button btn_alter = (Button) findViewById(R.id.btn_launcher_alter);
  btn_alter.setOnClickListener(new OnClickListener() {

    // 第一次点击这个按钮的时候 fragment1, fragment2 都为null, 当以后再点这个按钮      的时候fragment1, fragment2 却都不为null了,???
    // findFragmentById 这个方法空间是怎么工作的。
    @Override
    public void onClick(View v) {
      Fragment fragment1 = fm.findFragmentById(R.id.llyt_launcher_fragmet_container);
      if (fragment1 == null) {
      fragment1 = new FirstFragment();
      fm.beginTransaction().add(R.id.llyt_launcher_fragmet_container,           fragment1).commit();
      }

    // 这里怎么又变 null了, 
    Fragment fragment2 = fm.findFragmentById(R.id.llyt_launcher_fragmet_container);
    if (fragment2 == null) {
fragment2 = new FirstFragment();
fm.beginTransaction().add(R.id.llyt_launcher_fragmet_container, fragment2).commit();
Log.i("LauncherActivity --> ", "Second");
}
}
});
}
}
yipianfan的主页 yipianfan | 初学一级 | 园豆:184
提问于:2015-10-14 22:20
< >
分享
所有回答(1)
0

你问的和你为什么变null没有关系,获取不到这个Fragment当然为空,你不能只看后台这点代码

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-15 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册