文章底部有该作业源代码
先看效果图:
这个作业的效果实现起来很简单:
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