游戏页面布局:
该页面布局写法比较多这里只提供我们学过的最简单的实现方式。(作为代价就是写起来比较繁琐) 该页面位置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显示出来结果.