Android 开发入门篇 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器


游戏页面布局:

img

该页面布局写法比较多这里只提供我们学过的最简单的实现方式。(作为代价就是写起来比较繁琐) 该页面位置app/src/main/res/layout/game1.xml
很长对吧?因为该页面包含了多个LinearLayout的嵌套

首先整体是个线性布局(纵向" orientation="vertical" ")

整体布局包含了5个LinearLayout布局(用于展示每行数字)和1个TextView

这5个LinearLayout固定高度为60dp(横向"orientation="horizontal" ")

每行的LinearLayout包含5个TextView :

<TextView
      android:layout_width="0dp"
      android:layout_height="match_parent"
      android:layout_weight="1"
      android:gravity="center"
      android:text="1"
      android:textSize="20dp" />

我们看到每个的宽度都为0dp ," layout_weight "都为1。这样的布局是为了让4个数字平均分配父组件的这行空间
而且所得显示文字都是居中的"gravity="center" "

游戏主要逻辑源码:

Game1.java:


        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+1;
                Intent intent = new Intent(Game1.this , Game2.class);
                intent.putExtra("sum" , sum);
                game1.setText("您选择了: 有 \n result:"+sum);
                startActivity(intent);
                finish();
            }
        });

        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+0;
                Intent intent = new Intent(Game1.this , Game2.class);
                intent.putExtra("sum" , sum+0);
                game1.setText("您选择了: 没有 \n result:"+sum);
                startActivity(intent);
                finish();
            }
        });

两个按钮的监听事件

监听主要做两个工作:
1).计算当前的值,并传递给下个页面
2).跳转到下个页面 这些之前都讲过。

Game2.java

        Intent intent = getIntent();
        sum = intent.getIntExtra("sum" , 0);
        Log.i("TAG" , sum+"");
        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+2;
                Intent intent = new Intent(Game2.this , Game3.class);
                intent.putExtra("sum" , sum);
                game1.setText("您选择了: 有 \n result:"+sum);
                startActivity(intent);
                finish();
            }
        });

        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+0;
                Intent intent = new Intent(Game2.this , Game3.class);
                intent.putExtra("sum" , sum+0);
                game1.setText("您选择了: 没有 \n result:"+sum);
                startActivity(intent);
                finish();
            }
        });

Game3.java与Game4.java都和Game2.java类似。因为都是中间环节所以操作也都一样。

相比Game1.java只多做了一件事。

获取传递来的信息:

 Intent intent = getIntent();
 sum = intent.getIntExtra("sum" , 0);

Game5.java主要逻辑

        Intent intent = getIntent();
        sum = intent.getIntExtra("sum" , 0);
        Log.i("TAG" , sum+"");
        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+16;
                new AlertDialog.Builder(Game5.this)
                        .setTitle("结果")
                        .setMessage("你心中想的数字是:"+sum)
                        .setPositiveButton("好神奇!", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                                Intent firstpage = new Intent(Game5.this , FirstPage.class);
                                startActivity(firstpage);
                                finish();
                            }
                        })
                        .setNegativeButton("我不服,再来!", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Intent gogame1 = new Intent(Game5.this , Game1.class);
                                startActivity(gogame1);
                                finish();
                            }
                        }).show();
            }
        });

        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sum = sum+0;
                new AlertDialog.Builder(Game5.this)
                        .setTitle("结果")
                        .setMessage("你心中想的数字是:"+sum)
                        .setPositiveButton("好神奇!", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                                Intent firstpage = new Intent(Game5.this , FirstPage.class);
                                startActivity(firstpage);
                                finish();
                            }
                        })
                        .setNegativeButton("我不服,再来!", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Intent gogame1 = new Intent(Game5.this , Game1.class);
                                startActivity(gogame1);
                                finish();
                            }
                        }).show();
            }
        });

经过最后一轮的计算,通过AlertDialog显示出来结果.

img