当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一,创建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,源码。

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.mrgr.cn/news/69466.html

相关文章:

  • Go八股(Ⅴ)map
  • 将Docker中nginx静态资源目录映射到宿主机的某个目录及配置文件映射到宿主机
  • 开源竞争-利用kimi编程助手搭建小程序(11)
  • 微服务各组件整合
  • 1111111111待修改--大流量分析(三)-BUUCTF
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • 第二十九天|贪心算法| 134. 加油站, 135. 分发糖果 ,860.柠檬水找零,406.根据身高重建队列
  • 基于STM32的红外遥控接收器
  • PostgreSQL 删除数据库
  • 每天五分钟深度学习PyTorch:基于全连接神经网络完成手写字体识别
  • HarmonyOS入门 : 获取网络数据,并渲染到界面上
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • MQTT协议解析 : 物联网领域的最佳选择
  • HTML5+css3(定位属性,position:absolute,relative,fixed,相对定位,绝对定位,固定定位,z-index属性)
  • 【微软太离谱!企业用户Windows Server 2022一夜之间自动升到2025】
  • RK3568笔记1:BootRom
  • 计算机网络之物理层
  • 对HFSS中的结构使用Icepak进行热仿真-以微带电路为例-含工程
  • ts 将100个元素,每行显示9个元素,然后显示出所有行的元素,由此我们延伸出一个项目需求的简单算法实现。
  • 人工智能技术将逐步渗透到我们生活的每个角落
  • 探索C++中的常量定义:多种方式对比
  • 分布式锁实现方式
  • 深入理解 Vue 3 中的 Props
  • 2024年下半年系统分析师论文
  • 基于Multisim心率脉搏测量电路(含仿真和报告)
  • 数据结构:顺序表(动态顺序表)