效果图如下:

第二个页面:

显示结果和姓名、性别有关,代码如下:

activity_main.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="vertical"
7 tools:context=".MainActivity">
8
9 <EditText
10 android:id="@+id/name"
11 android:layout_width="match_parent"
12 android:layout_height="wrap_content"
13 android:hint="姓名" />
14
15 <RadioGroup
16 android:id="@+id/rg"
17 android:layout_width="match_parent"
18 android:layout_height="wrap_content"
19 android:orientation="horizontal">
20
21 <RadioButton
22 android:id="@+id/rb1"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:text="男" />
26
27 <RadioButton
28 android:id="@+id/rb2"
29 android:layout_width="wrap_content"
30 android:layout_height="wrap_content"
31 android:text="女" />
32
33 <RadioButton
34 android:id="@+id/rb3"
35 android:layout_width="wrap_content"
36 android:layout_height="wrap_content"
37 android:text="其他" />
38 </RadioGroup>
39
40 <Button
41 android:layout_width="wrap_content"
42 android:layout_height="wrap_content"
43 android:onClick="btnClick"
44 android:text="计算" />
45
46 </LinearLayout>

MainActivity.java:

 1 import android.content.Intent;
2 import android.support.v7.app.AppCompatActivity;
3 import android.os.Bundle;
4 import android.text.TextUtils;
5 import android.view.View;
6 import android.widget.EditText;
7 import android.widget.RadioButton;
8 import android.widget.RadioGroup;
9 import android.widget.TextView;
10 import android.widget.Toast;
11
12 public class MainActivity extends AppCompatActivity {
13
14 private EditText et_name;
15 private RadioGroup rg;
16 private RadioButton rb1;
17 private RadioButton rb2;
18 private RadioButton rb3;
19
20 @Override
21 protected void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.activity_main);
24
25 initView();
26
27 }
28
29 public void initView() {
30 et_name = findViewById(R.id.name);
31 rg = findViewById(R.id.rg);
32 rb1 = findViewById(R.id.rb1);
33 rb1 = findViewById(R.id.rb3);
34 rb1 = findViewById(R.id.rb1);
35 }
36
37 public void btnClick(View view) {
38 //获取用户名
39 String name = et_name.getText().toString().trim();
40 //判断是否为空
41 if (TextUtils.isEmpty(name)) {
42 Toast.makeText(getApplicationContext(), "请输入姓名", Toast.LENGTH_SHORT).show();
43 } else {
44 //判断性别
45 int radioButtonId = rg.getCheckedRadioButtonId();
46 int sex = 0;//sex代表性别
47 switch (radioButtonId) {
48 case R.id.rb1://代表男
49 sex = 1;
50 break;
51 case R.id.rb2://代表女
52 sex = 2;
53 break;
54 case R.id.rb3://代表其他
55 sex = 3;
56 break;
57 }
58 if (sex == 0) {
59 Toast.makeText(getApplicationContext(), "请输入性别", Toast.LENGTH_SHORT).show();
60
61 } else {
62 //跳转页面
63 Intent intent = new Intent(MainActivity.this, ResultActivity.class);
64 intent.putExtra("name", name);
65 intent.putExtra("sex", sex);
66 startActivity(intent);
67 }
68 }
69 }
70 }

activity_result.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 tools:context=".ResultActivity"
7 android:orientation="vertical">
8 <TextView
9 android:id="@+id/rName"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:text="张三"/>
13 <TextView
14 android:id="@+id/rSex"
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:text="男"/>
18 <TextView
19 android:id="@+id/result"
20 android:layout_width="wrap_content"
21 android:layout_height="wrap_content"
22 android:text="您的人品很好"/>
23
24 </LinearLayout>

ResulrActivity.java:

 1 import android.content.Intent;
2 import android.net.Uri;
3 import android.support.v7.app.AppCompatActivity;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.widget.TextView;
7
8 import java.util.Random;
9
10 public class ResultActivity extends AppCompatActivity {
11
12 private TextView rName;
13 private TextView rSex;
14 private TextView result;
15 private byte[] bytes;
16
17 @Override
18 protected void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.activity_result);
21
22 rName = findViewById(R.id.rName);
23 rSex = findViewById(R.id.rSex);
24 result = findViewById(R.id.result);
25
26 //获取传递来的数据
27 Intent intent = getIntent();
28 String name = intent.getStringExtra("name");
29 int sex = intent.getIntExtra("sex", 0);
30 rName.setText(name);
31 String str = name;
32 switch (sex) {
33 case 1:
34 rSex.setText("男");
35 str = name + "男";
36 break;
37 case 2:
38 rSex.setText("女");
39 str = name + "女";
40 break;
41 case 3:
42 rSex.setText("其他");
43 str = name + "其他";
44 break;
45 }
46 //计算结果使用随机数
47 bytes = str.getBytes();
48 int totle = 0;
49 for (byte b : bytes) {
50 int number = b & 0xff;//b&1111 1111
51 totle += number;
52
53 }
54 int score = Math.abs(totle) % 100;
55 if (score > 90) {
56 result.setText("你的人品不错");
57 } else if (score > 90) {
58 result.setText("你的人品还行");
59 } else if (score > 70) {
60 result.setText("你的人品刚及格");
61 } else if (score > 50) {
62 result.setText("你快被世界抛弃了");
63 } else if (score > 40) {
64 result.setText("虽然被抛弃了,你要活着,");
65 }//重点不是数据,然是页面间的传值
66
67
68 }
69 }

这就完成了,只适合小白练习而已,做个小笔记。

android多活动练习--人品计算器的更多相关文章

  1. Android(java)学习笔记218:开发一个多界面的应用程序之人品计算器的简单实现

    1.开启新的Activity的方法: (1)Intent 意图 (2)intent.setAction("自定义")  记得在清单文件中声明 (3)intent.setData(前 ...

  2. Android初级教程人品计算器

    先看布局: main_activity.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr ...

  3. Android(java)学习笔记161:开发一个多界面的应用程序之人品计算器的简单实现

    1.开启新的Activity的方法: (1)Intent 意图 (2)intent.setAction("自定义")  记得在清单文件中声明 (3)intent.setData(前 ...

  4. Android实训案例(一)——计算器的运算逻辑

    Android实训案例(一)--计算器的运算逻辑 应一个朋友的邀请,叫我写一个计算器,开始觉得,就一个计算器嘛,很简单的,但是写着写着发现自己写出来的逻辑真不严谨,于是搜索了一下,看到mk(没有打广告 ...

  5. 人品计算器 JFrame 窗体软件版 JPanel JTextField JTextArea JButtton JLabel setContentPane Swing包(用户界面工具包)

    import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.eve ...

  6. Android笔记——活动的生命周期

    一.活动的重要性 掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的游刃有余.你的应 ...

  7. Android——在活动中使用Menu

    ADT在HelloWorldActivity中自动创建了一个onCreateOptionsMenu()方法.这个方法是用于在活动中创建菜单的,现在我们来仔细分析一下了.手机毕竟和电脑不同,它的屏幕空间 ...

  8. Android Studio 活动启动模式

    启动模式一共分4种 可以再配置文件中设置 <activity android:name=".MainActivity" android:launchMode="si ...

  9. Android Studio 活动的生命周期

    Activity 类中定义了7个回调方法,覆盖了活动的活动周期的每一环节 onCreate()  活动第一次创建的时候调用 onStart() 这个活动由不可见变为可见的时候调用 onResume() ...

  10. Android:活动的启动模式

    启动模式一共有四种,分别是 standard .singleTop . singleTask 和 singleInstance , 可 以 在 AndroidManifest.xml 中 通 过 给 ...

随机推荐

  1. 把postgreSQL的表导入SQLite

    万能的互联网,一查一大堆废话,几乎搞不定.现将查到的资料结合实践概况如下,对不对也不清楚,反正可以跑了. 1.把PostgreSQL的表SQL语句复制出来 CREATE TABLE "mai ...

  2. IDEA target中没有class文件/target中有class没有yml文件/yml文件不显示叶子

    target中没有class文件.表现为文件显示红波浪线,但是点进去自己又好了,但是编译会说找不到.点进入target文件夹发现没有class文件,只有yml文件或者什么都没有 解决方法:rebuil ...

  3. ADM3251E使用一段时间后损坏

    使用ADM3251E导致CPU发热 - 参考链接: https://bbs.elecfans.com/jishu_1687010_1_1.html 笔者设计的电路板在解决RS232隔离通信的时采用了A ...

  4. ESP32系列,IDF官方实例——外设:通用GPIO

    示例位于 \examples\peripherals\gpio\generic_gpio 文件夹内 GPIO示例逻辑简单,直接看代码理解. /* GPIO示例 此示例代码位于公共域(或CC0许可,由您 ...

  5. Text Bg ContentSizeFitter的另类控制

    using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [RequireComponent(typeof(Co ...

  6. QT 可绑定属性 QProperty QObjectBindableProperty QObjectComputedProperty,简化信号、槽(SIGNAL、SLOT)机制的方法

    QT提供的可绑定属性是指这些属性可以绑定到其他值或表达式上(通常是 C++ lambda 表达式).如果属性是通过表达式进行绑定,该属性会跟随表达式自动更新.可绑定属性由 QProperty 类和 Q ...

  7. Volatile:内存可见性

    一.当写一个volatile变量时,JMM会把该线程对应的本地中的共享变量值刷新到主内存. 例子: /* * 一.volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见. * ...

  8. 🎀文件对比工具--BeyondCompare

    简介 Beyond Compare 是一款功能强大的文件和文件夹比较工具,由Scooter Software开发.它可以帮助用户轻松地比较文件和文件夹的差异,并且可以合并变化.同步文件以及备份重要数据 ...

  9. tar命令打包指定目录及其文件,而不包括其上级目录

    想指定将/var目录下的log目录及其文件打包到当前目录,在压缩包解压时不包括/var目录,可使用如下方式: tar -zcvf log_bak.tar.gz -C /var/ log # 注意log ...

  10. 25年初的cnvd小试

    算是一个里程碑吧,第一次尝试获得cnvd证书