以及两个Fragment界面,两个界面布局一样,很简单,一下是主要的布局代码 最大头的就是主界面的Java代码了!!! public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Fragment blankFragment; private Fragment secondFragment; private boolean skip = true; private boolean exit = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); blankFragment = new BlankFragment(); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.main, blankFragment); transaction.commit(); } public void onClick(View view) { switch (view.getId()) { case R.id.btn_main: jump(); break; } } private void jump() { boolean exit = true; if (skip) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); if (secondFragment == null) { secondFragment = new SecondFragment(); transaction.replace(R.id.main, secondFragment); transaction.commit(); skip = false; } else { transaction.replace(R.id.main, secondFragment); transaction.commit(); skip = false; } } else { Toast.makeText(this, "这是第二个Fragment", Toast.LENGTH_LONG).show(); } } public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && exit) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); skip = true; exit = false; transaction.replace(R.id.main, blankFragment); transaction.commit(); return false; } else { finish(); } return super.onKeyDown(keyCode, event); } } 当然了,两个Fragment布局的Java代码也要有所改变,以下 public class SecondFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_second,container,false); return view; } }
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Fragment blankFragment; private Fragment secondFragment; private boolean skip = true; private boolean exit = false;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
blankFragment = new BlankFragment(); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.main, blankFragment); transaction.commit(); }
public void onClick(View view) { switch (view.getId()) { case R.id.btn_main: jump(); break; } }
private void jump() { boolean exit = true;
if (skip) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); if (secondFragment == null) { secondFragment = new SecondFragment(); transaction.replace(R.id.main, secondFragment); transaction.commit(); skip = false; } else { transaction.replace(R.id.main, secondFragment); transaction.commit(); skip = false; } } else { Toast.makeText(this, "这是第二个Fragment", Toast.LENGTH_LONG).show(); } }
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && exit) {
FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); skip = true; exit = false; transaction.replace(R.id.main, blankFragment); transaction.commit(); return false; } else { finish(); } return super.onKeyDown(keyCode, event);
} }
public class SecondFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View view = inflater.inflate(R.layout.fragment_second,container,false); return view; } }