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"); } } }); } }
你问的和你为什么变null没有关系,获取不到这个Fragment当然为空,你不能只看后台这点代码