博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android——学生信息显示和添加
阅读量:4187 次
发布时间:2019-05-26

本文共 15496 字,大约阅读时间需要 51 分钟。

android——学生信息显示和添加

学生类

package com.example.test;import android.widget.RadioButton;import java.io.Serializable;/** * Created by TBM on 2021/3/14 */public class Student implements Serializable {
private String name; private String age; private String major; private String sex; private String xy; private String time; private String[] course; Student(String name, String age,String sex,String major,String xy,String time,String[] course){
this.name = name; this.major =major; this.age = age; this.sex = sex; this.xy = xy; this.time = time; this.course = course; } public String getName(){
return name;} public void setName(String name){
this.name = name;} public String getMajor(){
return major;} public void setMajor(String major){
this.major = major;} public String getAge(){
return age;} public void setAge(String age){
this.age = age;} public String getSex(){
return sex;} public void setSex(String sex){
this.sex = sex;} public String getXy(){
return xy;} public void setXy(String xy){
this.xy = xy;} public String getTime() {
return time; } public String[] getCourse() {
return course; } public void setCourse(String[] course) {
this.course = course; }}

使用ListView显示学生信息

主界面布局.xml

学生信息显示ListView格式.xml文件

学生信息显示.xml

Adapter连接LIstView

package com.example.test;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.os.Parcelable;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.util.List;/** * Created by TBM on 2021/3/14 */public class StuAdapter extends BaseAdapter implements View.OnClickListener {
private List stuDates; private Context stuContext; StuAdapter(Context context,List datas){
this.stuContext=context; this.stuDates=datas; } @Override public int getCount() {
return stuDates.size(); } @Override public Object getItem(int position) {
return stuDates.get(position); } @Override public long getItemId(int position) {
return position; } @Override public View getView(int position, View convertView, ViewGroup parent) {
View stuView = View.inflate(stuContext,R.layout.stu_layout,null); TextView tv_name = stuView.findViewById(R.id.name); TextView tv_major = stuView.findViewById(R.id.major); ImageView iv_edit = stuView.findViewById(R.id.edit); ImageView iv_delete = stuView.findViewById(R.id.delete); Student s= (Student) getItem(position); tv_name.setText(s.getName()); tv_major.setText(s.getMajor()); // 给adpter内部的控件增加一个监听 iv_edit.setOnClickListener(this); iv_delete.setOnClickListener(this); //给删除和编辑的imageView设置一个标志,用item的位置position来定位,类似一个id,通过tag可以获得 //list的item iv_delete.setTag(position); iv_edit.setTag(position); return stuView; } @Override public void onClick(View v) {
final int position= (int) v.getTag(); Student s= (Student) stuDates.get(position); switch (v.getId()){
case R.id.edit: Intent intent=new Intent(); intent.setClass(stuContext,StuInfoActivity.class); intent.putExtra("student", s); intent.putExtra("position",position); intent.putExtra("type","editOper"); ((Activity)stuContext).startActivityForResult(intent,MainActivity.EDITCODE); /*((Activity)stuContext).setResult(MainActivity.EDITCODE,intent);*/ Toast.makeText(stuContext,s.getName()+":编辑"+position,Toast.LENGTH_LONG).show(); break; case R.id.delete: AlertDialog.Builder myDialog=new AlertDialog.Builder(stuContext); myDialog.setTitle("提示"); myDialog.setIcon(R.mipmap.ic_launcher); myDialog.setMessage("确定删除"+s.getName()+"?"); myDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
stuDates.remove(position);//删除集合 StuAdapter.this.notifyDataSetChanged();//适配器更新数据 Toast.makeText(stuContext,s.getName()+":删除!",Toast.LENGTH_LONG).show(); } }); myDialog.setNegativeButton("取消",null); myDialog.show(); break; } }}

主界面.java

package com.example.test;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {
private ListView studentList; private List
students = new ArrayList<>(); private Button add; private StuAdapter stuAdapter; static int ADDCODE=100; static int EDITCODE=200; private String c[] = {
}; @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); studentList = (ListView) findViewById(R.id.studentList); add = findViewById(R.id.btn_add); Student s1 = new Student("李四","21","男","电子信息","信息科学与工程学院","2018-9-1",c); Student s2 = new Student("王五", "24","男","物联网工程","土木学院","2017-9-1",c); Student s3 = new Student("张三", "23","女","计算机科学与技术","河海学院","2016-9-1",c); students.add(s1); students.add(s2); students.add(s3); stuAdapter =new StuAdapter(MainActivity.this,students); studentList.setAdapter(stuAdapter); studentList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView
parent, View view, int position, long id) {
ListView listView = (ListView) parent; Student s = (Student) listView.getItemAtPosition(position); Toast.makeText(MainActivity.this, s.getName() + "查看", Toast.LENGTH_SHORT).show(); } }); add.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Intent intent = new Intent(); intent.setClass(MainActivity.this, StuInfoActivity.class); /* intent.putExtra("type", "add");*/ startActivityForResult(intent, ADDCODE); } }); } @Override//设置监听 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); if (data == null) return; Bundle bundle = data.getExtras(); Student student = (Student) bundle.get("students"); /*ArrayList
s = (ArrayList
) bundle.get("students"); String n = null,m = null; for (Student student:s){ n = student.getName(); m = student.getMajor(); } Student student = new Student(n,m);*/ if (requestCode == ADDCODE) {
students.add(student); stuAdapter.notifyDataSetChanged(); } else if (requestCode== EDITCODE) {
int k = bundle.getInt("position"); students.set(k, student); stuAdapter.notifyDataSetChanged(); } }}

学生信息类.java

package com.example.test;import androidx.appcompat.app.AppCompatActivity;import android.app.DatePickerDialog;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.Button;import android.widget.CheckBox;import android.widget.DatePicker;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Spinner;import android.widget.Toast;import java.util.ArrayList;import java.util.Calendar;import java.util.List;public class StuInfoActivity extends AppCompatActivity {
private AutoCompleteTextView major; private Spinner spinner; private EditText time; private Calendar cal; private int year,month,day; private Button submit; private EditText ed_name; private EditText ed_age; private RadioGroup sexselect; private RadioButton manRb; private RadioButton womanRb; private LinearLayout linearLayout; private List
majors = new ArrayList
(); private ArrayAdapter
adapter; private ArrayList
students1 = new ArrayList<>(); private String majordata; private String sexdate; private String xy; private String course[]; private int position; private int xyposition; private int i; @Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_stu_info); major = findViewById(R.id.ed_major); time = findViewById(R.id.datetime); submit = findViewById(R.id.submit); sexselect = findViewById(R.id.sexselect); manRb = findViewById(R.id.manRb); womanRb = findViewById(R.id.womanRb); linearLayout= findViewById(R.id.check_pro); majors.add("计算机科学与技术"); majors.add("计算机应用"); adapter = new ArrayAdapter
(this, R.layout.textview, majors); major.setAdapter(adapter); spinner = findViewById(R.id.spinner); ed_name = findViewById(R.id.ed_name); ed_age = findViewById(R.id.ed_age); initlSpinner(); Bundle bundle = this.getIntent().getExtras(); if (bundle != null){
Student student = (Student) bundle.get("student"); position = (int) bundle.get("position"); String names = student.getName(); String majors = student.getMajor(); String ages = student.getAge(); String sexs = student.getSex(); String xys = student.getXy(); String times = student.getTime(); String courses[] = student.getCourse(); checkshow(linearLayout,courses); xy = xys; xyposition=setspinnerinfo(xy); ed_name.setText(names); major.setText(majors); ed_age.setText(ages); time.setText(times); spinner.setSelection(xyposition,true); if (sexs.equals("男")){
manRb.setChecked(true); }else if (sexs.equals("女")){
womanRb.setChecked(true); } } submit.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
String name =ed_name.getText().toString(); String age = ed_age.getText().toString(); String times = time.getText().toString(); course=getCheckBoxInfo(linearLayout); sexdate = getRadioInfo(sexselect); majordata = major.getText().toString(); if (name==null||name.length()==0){
ed_name.setError("不能为空!"); Toast.makeText(StuInfoActivity.this,"请输入姓名",Toast.LENGTH_LONG).show(); return; }else if (juagenum(name)){
ed_name.setError("名字不能含有数字!"); Toast.makeText(StuInfoActivity.this,"姓名不能包含数字",Toast.LENGTH_LONG).show(); return; }else if (age==null||age.length()==0){
ed_age.setError("不能为空!"); Toast.makeText(StuInfoActivity.this,"请输入年龄",Toast.LENGTH_LONG).show(); return; } Student student = new Student(name,age,sexdate,majordata,xy,times,course); students1.add(student); Intent intent = new Intent(); intent.setClass(StuInfoActivity.this,MainActivity.class); intent.putExtra("students",student); intent.putExtra("position",position); setResult(MainActivity.ADDCODE,intent); finish(); } }); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override public void onItemSelected(AdapterView
parent, View view, int position, long id) {
xy = parent.getItemAtPosition(position).toString(); } @Override public void onNothingSelected(AdapterView
parent) {
} }); time.setKeyListener(null); time.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
@Override public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
time.setText(year + "-" + month + "-" + dayOfMonth); } }; getDate(); DatePickerDialog datePickerDialog = new DatePickerDialog(StuInfoActivity.this, listener, year, month, day); datePickerDialog.show(); } }); } @Override protected void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data); if (data == null) return; Bundle bundle = data.getExtras(); Student student = (Student) bundle.get("student"); if (requestCode == MainActivity.EDITCODE ){
/* int position = (int) bundle.get("position");*/ String names = student.getName(); String majors = student.getMajor(); ed_name.setText(names); major.setText(majors); } } private void getDate() {
cal=Calendar.getInstance(); year=cal.get(Calendar.YEAR); month=cal.get(Calendar.MONTH); day=cal.get(Calendar.DAY_OF_MONTH); } private void initlSpinner(){
String[] arr= getResources().getStringArray(R.array.xyinfo); ArrayAdapter
arrayAdapter = new ArrayAdapter
(this, android.R.layout.simple_spinner_dropdown_item,arr ); spinner.setAdapter(arrayAdapter); } private boolean isDigtal(String num){ return num.matches("[0-9]{1,}"); } private boolean juagenum(String num){ int len = num.length(); for (int i=0;i

包含输入框校验等。

以上内容使用到了AutoCompleTextView,Spinner下拉框,日期挂件、还有点选、复选框的值获取转换等。

效果演示

在这里插入图片描述

转载地址:http://iwsoi.baihongyu.com/

你可能感兴趣的文章
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>
构建OpenStack的云基础架构:ManageIQ(转)
查看>>
云管理软件 ManageIQ(转)
查看>>
CentOS 7.0,启用iptables防火墙(转)
查看>>
DISCUZ浅析之COOKIE篇
查看>>