移动应用开发:实现简易调查问卷

devtools/2024/11/16 5:22:55/

文章目录

  • 前言
  • 一,创建SurveyActivity活动
  • 二,设计UI
  • 三,创建字符串资源文件
  • 四,编写活动代码
  • 五,更新 AndroidManifest.xml
  • 六,运行测试


前言

在Android Studio中开发一个调查问卷界面思路解析:

  1. 创建布局文件
    首先,在res/layout目录下创建一个新的XML布局文件,activity_survey.xml。在这个文件中,可以使用LinearLayout来组织UI组件。
    在这里插入图片描述

  2. 创建Activity类
    java目录下创建一个新的Activity类,SurveyActivity.java

  3. 初始化Spinner和设置按钮监听器
    SurveyActivityonCreate方法中,需要初始化Spinner(下拉框),并设置按钮的点击监听器。

  4. 验证数据并显示结果
    在提交按钮的点击监听器中,需要验证所有字段是否都已填写。如果未填写,则显示一个Toast消息提示用户。如果已填写,则将结果显示在TextView中。

  5. 退出应用程序
    在退出按钮的点击监听器中,可以调用finish()方法来关闭当前Activity,从而退出应用程序。

一,创建SurveyActivity活动

1,右击项目根目录——选择“New”——Activity——Empty Activity。
在这里插入图片描述
2,输入活动名:“SurveyActivity”,语言选择“Java”。
在这里插入图片描述
3,查看文件是否成功创建。
在这里插入图片描述

二,设计UI

1,打开activity_survey.xml文件,单击code,编写代码,设计UI。
在这里插入图片描述
2,源代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:padding="16dp"tools:context=".SurveyActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:textStyle="bold"android:layout_marginBottom="10dp"android:text="校园问卷调查"android:textSize="38dp"/><!-- 姓名 --><EditTextandroid:id="@+id/editTextName"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="姓名"android:inputType="textPersonName" /><!-- 出生日期 --><EditTextandroid:id="@+id/editTextAge"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="出生日期 (yyyy-MM-dd)"android:inputType="date" /><!-- 性别 --><Spinnerandroid:id="@+id/spinnerGender"android:layout_width="match_parent"android:layout_height="wrap_content" /><!-- 院系 --><Spinnerandroid:id="@+id/spinnerDepartment"android:layout_width="match_parent"android:layout_height="wrap_content" /><!-- 电话号码 --><EditTextandroid:id="@+id/etPhoneNumber"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="电话号码"android:inputType="phone" /><!-- 对食堂是否满意 --><RadioGroupandroid:id="@+id/rgSatisfaction"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="食堂满意度:"android:textSize="18dp"/><RadioButtonandroid:id="@+id/rbSatisfied"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="满意" /><RadioButtonandroid:id="@+id/rbNotSatisfied"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="不满意" /></RadioGroup><!-- 建议 --><EditTextandroid:id="@+id/etSuggestion"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="建议"android:inputType="textMultiLine"android:minLines="3" /><!-- 按钮 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"><Buttonandroid:id="@+id/btnExit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="退出" /><Buttonandroid:id="@+id/btnSubmit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交"android:layout_marginStart="16dp" /></LinearLayout><!-- 结果显示 --><ScrollViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"><TextViewandroid:id="@+id/tvResult"android:layout_width="match_parent"android:layout_height="wrap_content"android:visibility="gone"android:padding="16dp"android:background="@android:color/holo_blue_light"android:textColor="@android:color/white" /></ScrollView></LinearLayout>

三,创建字符串资源文件

1,在 res/values/strings.xml 文件中添加以下数组资源。
在这里插入图片描述
2,源码。

<!-- Gender options -->                 
<string-array name="gender_options">    <item></item>                      <item></item>                      <item>其他</item>                     
</string-array>                         <!-- Department options -->             
<string-array name="department_options"><item>计算机科学</item>                  <item>电子工程</item>                   <item>机械工程</item>                   <item>商业管理</item>                   <item>其他</item>                     
</string-array>                         

四,编写活动代码

1,打开并编写SurveyActivity.java代码,处理用户输入的数据以及按钮点击事件。
在这里插入图片描述

2,源码。

java">package com.example.mycontacts;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;/*** 功能:简易问卷调查* 日期:2024年11月9日* 作者:梁辰兴*/public class SurveyActivity extends AppCompatActivity {private EditText editTextName, editTextAge, etPhoneNumber, etSuggestion;private Spinner spinnerGender, spinnerDepartment;private RadioGroup rgSatisfaction;private RadioButton rbSatisfied, rbNotSatisfied;private Button btnExit, btnSubmit;private TextView tvResult;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_survey);// 初始化UI组件editTextName = findViewById(R.id.editTextName);editTextAge = findViewById(R.id.editTextAge);etPhoneNumber = findViewById(R.id.etPhoneNumber);etSuggestion = findViewById(R.id.etSuggestion);spinnerGender = findViewById(R.id.spinnerGender);spinnerDepartment = findViewById(R.id.spinnerDepartment);rgSatisfaction = findViewById(R.id.rgSatisfaction);rbSatisfied = findViewById(R.id.rbSatisfied);rbNotSatisfied = findViewById(R.id.rbNotSatisfied);btnExit = findViewById(R.id.btnExit);btnSubmit = findViewById(R.id.btnSubmit);tvResult = findViewById(R.id.tvResult);//用性别选项填充SpinnerArrayAdapter<CharSequence> genderAdapter = ArrayAdapter.createFromResource(this,R.array.gender_options, android.R.layout.simple_spinner_item);genderAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinnerGender.setAdapter(genderAdapter);// 用部门选项填充SpinnerArrayAdapter<CharSequence> departmentAdapter = ArrayAdapter.createFromResource(this,R.array.department_options, android.R.layout.simple_spinner_item);departmentAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinnerDepartment.setAdapter(departmentAdapter);// 设置按钮点击监听器btnExit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {finish();}});btnSubmit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String name = editTextName.getText().toString();String age = editTextAge.getText().toString();String phone = etPhoneNumber.getText().toString();String suggestion = etSuggestion.getText().toString();String gender = (String) spinnerGender.getSelectedItem();String department = (String) spinnerDepartment.getSelectedItem();int satisfaction = rgSatisfaction.getCheckedRadioButtonId();String satisfactionStatus = (satisfaction == rbSatisfied.getId()) ? "满意" : "不满意";if (name.isEmpty() || age.isEmpty() || phone.isEmpty() || gender.isEmpty() || department.isEmpty()) {Toast.makeText(SurveyActivity.this, "请填写所有必填项", Toast.LENGTH_SHORT).show();} else {StringBuilder result = new StringBuilder();result.append("姓名: ").append(name).append("\n");result.append("出生日期: ").append(age).append("\n");result.append("性别: ").append(gender).append("\n");result.append("院系: ").append(department).append("\n");result.append("电话号码: ").append(phone).append("\n");result.append("食堂满意度: ").append(satisfactionStatus).append("\n");result.append("建议: ").append(suggestion).append("\n");tvResult.setText(result.toString());tvResult.setVisibility(View.VISIBLE);}}});}
}

五,更新 AndroidManifest.xml

确保在 AndroidManifest.xml 中声明了 SurveyActivity:
在这里插入图片描述

六,运行测试

1,选择SurveyActivity.java,右击,选择运行,或单击运行按钮,启动活动
在这里插入图片描述
2,运行效果。

在这里插入图片描述


http://www.ppmy.cn/devtools/134351.html

相关文章

C#中break和continue的区别?

在C#编程语言中&#xff0c;break和continue是两个用于控制循环流程的关键字&#xff0c;但它们的作用和用途有所不同。 break关键字 break关键字用于立即终止它所在的最内层循环或switch语句&#xff0c;并跳出该循环或switch块。程序执行将继续进行循环或switch语句之后的下一…

深入理解ElasticSearch分词器:详解各种分词器的原理与应用

目录 什么是分词器ElasticSearch中的分词器种类标准分词器&#xff08;Standard Analyzer&#xff09;简单分词器&#xff08;Simple Analyzer&#xff09;空格分词器&#xff08;Whitespace Analyzer&#xff09;语言分词器&#xff08;Language Analyzers&#xff09;拼音分…

wordcloud库基本介绍

文章目录 wordcloud库概述wordcloud库的安装 wordcloud库使用说明配置对象参数 wordcloud应用实例实例: 政府工作报告词云 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术地展示文本 wordcloud库的安装 (cmd命令行) pip install …

使用Git工具在GitHub的仓库中上传文件夹(超详细)

如何使用Git工具在GitHub的仓库中上传文件夹&#xff1f; 如果觉得博主写的还可以&#xff0c;点赞收藏关注噢~ 第一步&#xff1a;拥有一个本地的仓库 可以fork别人的仓库或者自己新创建 fork别人的仓库 或者自己创建一个仓库 按照要求填写完成后&#xff0c;点击按钮创建…

单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)

目录 1.单元测试 实现单元测试的方法&#xff1a; 注意事项&#xff1a; 2.集成测试 需注意事项&#xff1a; 实现集成测试的方法&#xff1a; 如何实现高效且可靠的集成测试&#xff1a; 3.系统测试 实现系统测试的方法: 须知注意事项&#xff1a; 4.验收测试 实现验…

SQL面试题——蚂蚁SQL面试题 连续3天减少碳排放量不低于100的用户

连续3天减少碳排放量不低于100的用户 这是一道来自蚂蚁的面试题目,要求我们找出连续3天减少碳排放量低于100的用户,之前我们分析过两道关于连续的问题了 SQL面试题——最大连续登陆问题 SQL面试题——球员连续四次得分 这两个问题都是跟连续有关的,但是球员连续得分的难…

Vue3 - 小兔仙 - day3

0.学习大纲 1.Home模块 静态结构搭建和分类实现 整体结构创建 按照结构新增五个组件&#xff0c;准备最简单的模版&#xff0c;分别在Home模块的入口组件中引入 HomeCategory HomeBanner HomeNew HomeHot HomeProduct 在组件中添加简单模版 <script setup> <…

解析安卓镜像包和提取DTB文件的操作日志

概述 想查看一下安卓的镜像包里都存了什么内容 步骤 使用RKDevTool_v3.15对RK3528_DC_HK1_RBOX_K8_Multi_WIFI_13_20230915.2153.img解包 路径: 高级(Advancing) > 固件(firmware) > 解包(unpacking)得到\Output\Android\Image boot.imguboot.imgsuper.img 处理boot.…