一:布局界面
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg"
android:orientation="vertical"
android:padding="10dp">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow android:layout_marginBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="1"
android:gravity="center"
android:text="性别:"
android:textColor="#111"
android:textSize="18sp" />
<RadioGroup
android:id="@+id/gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="未知" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="男" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="女" />
</RadioGroup>
</TableRow>
<TableRow android:layout_marginBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="1"
android:gravity="center"
android:text="职位:"
android:textColor="#111"
android:textSize="18sp" />
<Spinner
android:id="@+id/position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:entries="@array/position" />
</TableRow>
<TableRow android:layout_marginBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="1"
android:gravity="center"
android:text="爱好:"
android:textColor="#111"
android:textSize="18sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center">
<CheckBox
android:id="@+id/beer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="吃喝" />
<CheckBox
android:id="@+id/exercise"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="运动" />
<CheckBox
android:id="@+id/game"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="游戏" />
<CheckBox
android:id="@+id/film"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="电影" />
<CheckBox
android:id="@+id/music"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="音乐" />
<CheckBox
android:id="@+id/book"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="看书" />
</LinearLayout>
</TableRow>
</TableLayout>
</LinearLayout>
<Button
android:id="@+id/submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="提交" />
</LinearLayout>
二:spinner数据源arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="position">
<item>硬件工程师</item>
<item>软件工程师</item>
<item>技术工程师</item>
<item>测试工程师</item>
<item>网络工程师</item>
<item>系统工程师</item>
<item>数据库工程师</item>
</string-array>
</resources>
三:主界面
package com.example.demo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
public class FormActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
private RadioGroup gender;
private Spinner position;
private CheckBox beer;
private CheckBox exercise;
private CheckBox game;
private CheckBox film;
private CheckBox music;
private CheckBox book;
private Button submit;
private String sex = "";
private String post = "";
private String like = "";
private ArrayList list = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_form);
initView();
}
private void initView() {
gender = findViewById(R.id.gender);
position = findViewById(R.id.position);
beer = findViewById(R.id.beer);
exercise = findViewById(R.id.exercise);
game = findViewById(R.id.game);
film = findViewById(R.id.film);
music = findViewById(R.id.music);
book = findViewById(R.id.book);
submit = findViewById(R.id.submit);
// 获取单选按钮选中值
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton radioButton = findViewById(checkedId);
sex = (String) radioButton.getText();
}
});
// 获取spinner选中值
position.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
post = FormActivity.this.getResources().getStringArray(R.array.position)[position];
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
// 设置多选按钮点击事件
beer.setOnCheckedChangeListener(this);
exercise.setOnCheckedChangeListener(this);
game.setOnCheckedChangeListener(this);
film.setOnCheckedChangeListener(this);
music.setOnCheckedChangeListener(this);
book.setOnCheckedChangeListener(this);
// 提交按钮
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 循环遍历取出保存的选中的多选按钮的值
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (i == (list.size() - 1)) {
sb.append(list.get(i));
} else {
sb.append(list.get(i) + ",");
}
}
Toast.makeText(FormActivity.this, "性别:" + sex + "; 职位:" + post + ";爱好:" + sb, Toast.LENGTH_SHORT).show();
}
});
}
// 将选中的多选按钮值保存在list集合中
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
list.add(buttonView.getText().toString());
} else {
list.remove(buttonView.getText().toString());
}
}
}