关闭

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

117人阅读 评论(0) 收藏 举报
分类:

再这个案例中 再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

猜你在找
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【套餐】深度学习入门视频课程——唐宇迪
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】计算机视觉原理及实战——屈教授
【直播】机器学习之凸优化——马博士
【直播】机器学习&数据挖掘7周实训--韦玮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7909次
    • 积分:393
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条