移动应用开发:实现简易调查问卷
文章目录
- 前言
- 一,创建SurveyActivity活动
- 二,设计UI
- 三,创建字符串资源文件
- 四,编写活动代码
- 五,更新 AndroidManifest.xml
- 六,运行测试
前言
在Android Studio中开发一个调查问卷界面思路解析:
-
创建布局文件
首先,在res/layout
目录下创建一个新的XML布局文件,activity_survey.xml
。在这个文件中,可以使用LinearLayout
来组织UI组件。
-
创建Activity类
在java
目录下创建一个新的Activity类,SurveyActivity.java
。 -
初始化Spinner和设置按钮监听器
在SurveyActivity
的onCreate
方法中,需要初始化Spinner(下拉框),并设置按钮的点击监听器。 -
验证数据并显示结果
在提交按钮的点击监听器中,需要验证所有字段是否都已填写。如果未填写,则显示一个Toast消息提示用户。如果已填写,则将结果显示在TextView
中。 -
退出应用程序
在退出按钮的点击监听器中,可以调用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">
<TextView
android: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"/>
<!-- 姓名 -->
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="姓名"
android:inputType="textPersonName" />
<!-- 出生日期 -->
<EditText
android:id="@+id/editTextAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="出生日期 (yyyy-MM-dd)"
android:inputType="date" />
<!-- 性别 -->
<Spinner
android:id="@+id/spinnerGender"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- 院系 -->
<Spinner
android:id="@+id/spinnerDepartment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!-- 电话号码 -->
<EditText
android:id="@+id/etPhoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="电话号码"
android:inputType="phone" />
<!-- 对食堂是否满意 -->
<RadioGroup
android:id="@+id/rgSatisfaction"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="食堂满意度:"
android:textSize="18dp"/>
<RadioButton
android:id="@+id/rbSatisfied"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="满意" />
<RadioButton
android:id="@+id/rbNotSatisfied"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="不满意" />
</RadioGroup>
<!-- 建议 -->
<EditText
android:id="@+id/etSuggestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="建议"
android:inputType="textMultiLine"
android:minLines="3" />
<!-- 按钮 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<Button
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退出" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
android:layout_marginStart="16dp" />
</LinearLayout>
<!-- 结果显示 -->
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView
android: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;
@Override
protected 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);
//用性别选项填充Spinner
ArrayAdapter<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);
// 用部门选项填充Spinner
ArrayAdapter<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() {
@Override
public void onClick(View v) {
finish();
}
});
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public 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,运行效果。