《拼图游戏》技术总结“五”Fragment管理

来源:互联网 发布:金刚256怎么编程 编辑:程序博客网 时间:2024/06/18 04:02

再这个案例中 再ActivityStart中加载了3个Fragment,所以这里就用到了Fragment的管理了

1.获取Fragment管理器 getSupportFragmentManager()

2.开启一个事务 .beginTransaction();

3. .add .replace 

ActivityStart:

/** * 开始界面在他的R.id.content显示3个Fragment */public class ActivityStart extends FragmentActivity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.start);        //获取Fragment 管理器        FragmentManager manager = getSupportFragmentManager();        //开启一个事务        FragmentTransaction mFragmentTransaction = manager.beginTransaction();        mFragmentTransaction.add(R.id.content, new FragmentStart());//默认显示开始Fragment        mFragmentTransaction.commit();    }}
FragmentStart:

/** * 1.开始游戏的界面 * 2.开始界面里又四个按钮 *  1) 新的游戏 ==> 选择游戏的Fragment *  2) 继续游戏 ==> 跳转到上次的“游戏界面” *  3) 排行榜 ==> 跳转到排行榜Fragment *  2) 退出游戏 ==> finish 掉当前页面 * */public class FragmentStart extends Fragment implements View.OnClickListener {    private Button btNewGame;    private Button btContinue;    private Button bRank;    private Button btQuit;    //获取Fragment 管理器    FragmentManager manager;    //开启一个事务    FragmentTransaction mFragmentTransaction;    View mView;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        mView = inflater.inflate(R.layout.start_chose, null);        initVariable();        initListener();        return mView;    }    void initListener() {        btNewGame.setOnClickListener(this);        btContinue.setOnClickListener(this);        btQuit.setOnClickListener(this);        bRank.setOnClickListener(this);    }    void initVariable() {        //初始化变量        manager  =getActivity().getSupportFragmentManager();        mFragmentTransaction  = manager.beginTransaction();        //        btNewGame = (Button) mView.findViewById(R.id.btNewGame);        btContinue = (Button) mView.findViewById(R.id.btContinue);        bRank = (Button) mView.findViewById(R.id.btRankingList);        btQuit = (Button) mView.findViewById(R.id.btQuit);    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.btContinue:                Log.i("==", "你点击了continue按钮");                Intent mIntent=new Intent(getActivity(), ActivityMain.class);                ActivityMain.isContinue= true;                startActivity(mIntent);                getActivity().finish();                break;            case R.id.btNewGame:                mFragmentTransaction.replace(R.id.content,new FragmentNewGame() );                mFragmentTransaction.addToBackStack(null);//下个界面按返回键会跳到上个界面                mFragmentTransaction.commit();//提交事务                break;            case R.id.btQuit:                getActivity().finish();                break;            case R.id.btRankingList:                mFragmentTransaction.replace(R.id.content,new FragmentRank() );                mFragmentTransaction.addToBackStack(null);                mFragmentTransaction.commit();                break;        }    }}

0 0
原创粉丝点击