Android 作业:《我的未来》

文章底部有该作业源代码

先看效果图:

这个作业的效果实现起来很简单:

1. 创建了两个Activity并书写对应的布局样式

2. 使用了 Intent 来进行 Activity 之间数据传输

3. 使用了 Math 类来生成随机数,来渲染随机职业文字

Layout 代码

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/jingzi2"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:letterSpacing=".1"
            android:text="请告诉我你的信息"
            android:textColor="@color/white"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/edit_text"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:textColor="@color/white" />

        <RadioGroup
            android:id="@+id/rgBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/boy"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男生"
                android:textColor="@color/white" />

            <RadioButton
                android:id="@+id/girl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女生"
                android:textColor="@color/white" />

        </RadioGroup>

        <ImageButton
            android:id="@+id/btn"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:background="@drawable/yuche"
            android:onClick="startForecast" />

    </LinearLayout>


</LinearLayout>

activity_result.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/jingzi2"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:letterSpacing=".1"
            android:text="请告诉我你的信息"
            android:textColor="@color/white"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/edit_text"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:textColor="@color/white" />

        <RadioGroup
            android:id="@+id/rgBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/boy"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="男生"
                android:textColor="@color/white" />

            <RadioButton
                android:id="@+id/girl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="女生"
                android:textColor="@color/white" />

        </RadioGroup>

        <ImageButton
            android:id="@+id/btn"
            android:layout_width="160dp"
            android:layout_height="60dp"
            android:background="@drawable/yuche"
            android:onClick="startForecast" />

    </LinearLayout>


</LinearLayout>

Activity 代码

MainActivity:

package com.example.myfuture;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    ImageButton btn;
    EditText edit_text;
    RadioGroup rgBtn;
    String gender = "男生";
    RadioButton boy;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();
    }

    private void init() {
        btn = findViewById(R.id.btn);
        edit_text = findViewById(R.id.edit_text);
        rgBtn = findViewById(R.id.rgBtn);
        boy = findViewById(R.id.boy);

        boy.setChecked(true);

        rgBtn.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                RadioButton radioButton = findViewById(checkedId);
                gender = radioButton.getText().toString();
                System.out.println(gender);
            }
        });
    }

    public void startForecast(View view) {
        String editContent = edit_text.getText().toString();

        if (editContent.equals("")) {
            Toast.makeText(this, "请输入您的姓名", Toast.LENGTH_SHORT).show();
            return;
        }

        // 创建 Bundle
        // Bundle 以 key-value 形式存储数据,可以用来传递多个数据
        Bundle bundle = new Bundle();
        bundle.putString("userName",editContent);
        bundle.putString("gender",gender);

        Intent intent = new Intent(this,ResultActivity.class);
        intent.putExtras(bundle);
        startActivity(intent);
    }
}

ResultActivity:
package com.example.myfuture;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Random;

public class ResultActivity extends AppCompatActivity {

    TextView title;
    TextView work;
    ImageButton btn;
    ImageButton back;


    String[] allComputerWork = new String[]{
            "前端开发工程师", "Android开发工程师", "iOS开发工程师", "鸿蒙开发工程师", "软件测试工程师",
            "测试经理", "项目经理", "运维工程师", "产品经理", "数据标注/AI训练师", "AI训练师", "架构师", "技术总监"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);

        initView();
    }

    private void initView() {
        title = findViewById(R.id.title);
        work = findViewById(R.id.work);
        btn = findViewById(R.id.btn);
        back = findViewById(R.id.back);

        // 接收数据并设置文本
        Intent intent = getIntent();

        // 获取姓名
        String userName = intent.getStringExtra("userName");

        // 判断性别
        String gender = intent.getStringExtra("gender");
        String sex;

        sex = gender.equals("男生") ? "先生" : "女士";

        title.setText(String.format("亲爱的%s%s", userName, sex));

        // 生成随机数
        Random random = new Random();
        int randomNumber = random.nextInt(allComputerWork.length - 1) + 1;
        System.out.println("随机数:" + randomNumber);

        work.setText(allComputerWork[randomNumber]);

        // 设置点击事件
        startTest();
        backLastActivity();
    }

    private void startTest() {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 使用 Random 类,来生成随机数
                Random random = new Random();
                int randomNumber = random.nextInt(allComputerWork.length - 1) + 1;
                System.out.println("随机数:" + randomNumber);
                work.setText(allComputerWork[randomNumber]);
            }
        });
    }

    private void backLastActivity() {
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 直接关闭这个页面,就返回页面了
                finish();
            }
        });
    }
}

源代码下载地址:https://wwf.lanzouq.com/i6Gt121m7cvg 密码:future

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值