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

  • 学生类
  • 使用ListView显示学生信息
  • 效果演示

学生类

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid: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="24sp"android:layout_gravity="center"android:textColor="@color/black"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:layout_marginLeft="150dp"android:id="@+id/btn_add"android:text="添加学生" /></LinearLayout><ListViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/studentList"android:layout_marginTop="15dp" /></LinearLayout>

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:orientation="vertical"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="李四"android:id="@+id/name"android:textSize="25sp"android:gravity="center"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/major"android:layout_below="@id/name"android:textSize="20sp"android:text="计算机科学与技术"android:layout_marginTop="10dp"android:gravity="center"/></LinearLayout><ImageViewandroid:layout_width="50dp"android:layout_height="50dp"android:id="@+id/delete"android:layout_alignParentRight="true"android:src="@drawable/delete"android:clickable="true"android:layout_centerInParent="true"/><ImageViewandroid:layout_width="50dp"android:layout_height="50dp"android:id="@+id/edit"android:layout_toLeftOf="@id/delete"android:layout_marginRight="5dp"android:layout_centerInParent="true"android:src="@drawable/edit"android:clickable="true"/>
</RelativeLayout>

学生信息显示.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="信息录入"android:textSize="24sp"android:layout_gravity="center"android:textColor="@color/black"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="姓名:"android:id="@+id/ed_name"android:inputType="text"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="年龄:"android:id="@+id/ed_age"android:inputType="number"/><RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:id="@+id/sexselect"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:id="@+id/manRb"android:layout_weight="1"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"android:id="@+id/womanRb"android:layout_weight="1"/></RadioGroup><Spinnerandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/spinner" /><AutoCompleteTextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/ed_major"android:inputType="text"android:hint="专业:"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:hint="入学时间"android:id="@+id/datetime"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="课程选择"android:textSize="24sp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/check_pro"android:orientation="vertical"><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="数据库原理"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="计算机原理"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Android开发"/><CheckBoxandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="人工智能"/></LinearLayout><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:text="提交"android:textColor="@color/black"android:background="#9C9C99"android:textSize="24sp"android:layout_marginTop="20dp"android:id="@+id/submit"/></LinearLayout>

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;}@Overridepublic int getCount() {return stuDates.size();}@Overridepublic Object getItem(int position) {return stuDates.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic 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的itemiv_delete.setTag(position);iv_edit.setTag(position);return stuView;}@Overridepublic 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() {@Overridepublic 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<Student> students = new ArrayList<>();private Button add;private StuAdapter stuAdapter;static int ADDCODE=100;static int EDITCODE=200;private String c[] = {};@Overrideprotected 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() {@Overridepublic 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() {@Overridepublic 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<Student> s = (ArrayList<Student>) 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<String> majors = new ArrayList<String>();private ArrayAdapter<String> adapter;private ArrayList<Student> students1 = new ArrayList<>();private String majordata;private String sexdate;private String xy;private String course[];private int position;private int xyposition;private int i;@Overrideprotected 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<String>(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() {@Overridepublic 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() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {xy = parent.getItemAtPosition(position).toString();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});time.setKeyListener(null);time.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {@Overridepublic 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();}});}@Overrideprotected 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<String> arrayAdapter = new ArrayAdapter<String>(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<len;i++){if (Character.isDigit(num.charAt(i))){return true;}}return false;}private String getRadioInfo(RadioGroup radioGroup){String info = "";int num = radioGroup.getChildCount();for (int i=0;i<num;i++){RadioButton rd = (RadioButton) radioGroup.getChildAt(i);if (rd.isChecked()){info=rd.getText().toString();break;}}return info;}private int setspinnerinfo(String xy){int j;int i = getResources().getStringArray(R.array.xyinfo).length;String s[] = getResources().getStringArray(R.array.xyinfo);for ( j=0;j<i;j++){if (xy.equals(s[j])){break;}}return j;}private String[] getCheckBoxInfo(LinearLayout checkbox){int num = checkbox.getChildCount();String course[] = new String[num];int j = 0;for (int i=0;i<num;i++){CheckBox cb = (CheckBox) checkbox.getChildAt(i);if (cb.isChecked()){course[j]=cb.getText().toString();j++;}}return course;}public void checkshow(LinearLayout linearLayout,String[] courses){if ( courses != null){int num = linearLayout.getChildCount();for (int i=0;i<num;i++){CheckBox checkBox = (CheckBox) linearLayout.getChildAt(i);checkBox.setChecked(false);for (String c:courses){if (checkBox.getText().toString().equals(c)){checkBox.setChecked(true);break;}}}}}}

包含输入框校验等。

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

效果演示

android——学生信息显示和添加相关推荐

  1. android学生个人事物管理系统,基于Android平台的学生个人事务管理系统的设计与实现(整理版).doc...

    DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF;DS 摘 要 Android智能手机越来越普及 ...

  2. 腾讯互动白板+即时通讯+实时音视频,Android学生端接入

    腾讯互动白板+即时通讯+实时音视频,Android学生端接入 一.简介 线上教学方案:腾讯云互动白板(Tencent Interactive Whiteboard,TIW)+即时通信(Instant ...

  3. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)(二)

    本文上接用JDBC写一个学生管理系统(添加.删除.修改.查询学生信息) 这次主要是对上一文中的查询方法做一下调整,用创建内部类的方法来实现学生信息的查询. 我们先要定义一个接口IRowMapper: ...

  4. Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现

    Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...

  5. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...

    本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...

  6. 从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)

    从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库) 原文:从零开始学Xamarin.Forms(四) Android 准备步骤(添 ...

  7. android textView 替文字添加下划线 删除线

    android textView 替文字添加下划线 删除线 方法1: tv=(TextView)findViewById(R.id.tv); tv.getPaint().setFlags(Paint. ...

  8. android学生成绩查询代码,android学生成绩查询系统.pdf

    android学生成绩查询系统 嵌入式系统课程设计报告 学生成绩查询系统手机端 I 摘要 在 世纪的今天,互联网已深入世界的各个角落.而WAP技术的发展和无线业务的成 21 熟,为人们获取各种信息提供 ...

  9. Android 9 导航栏添加截图按钮

    Android 9 导航栏添加截图按钮 功能:Android 系统底部导航栏(HOME\BACK)位置添加截图按钮,系统设置界面添加截图开关 主要修改工程有SystemUI 和 Settings 注意 ...

最新文章

  1. HarmonyOS 怎样打印log/日志的打印
  2. final关键字用法
  3. 不同的二叉搜索树-战胜100%的Java用户
  4. 语言相关系数显著性_ggplot2 绘制带星号和 Pvalue 值的相关系数热图
  5. L1为什么具有稀疏性
  6. 安装ubuntu 13.04
  7. linux arp 文件,LINUX 下ARP 的查找
  8. 希捷银河声音大_【推仔说新闻】那款硬盘它终于来了 希捷推出首款双磁臂硬盘...
  9. window当mac用,VirtualBox虚拟机安装os系统
  10. (转)星巴克其实是靠大数据盈利的!
  11. 毕设 JAVA北京旅游网系统论文
  12. 福建计算机专业公务员考试培训,2016中国证监会公务员考试专业科目考试大纲(计算机类)...
  13. IT小知识:文件扩展名小知识大全(A~Z)文件扩展名大全
  14. 重心选址法matlab,在运用重心法选址时,需要已知哪些变量? 答案:物流量物流点坐标...
  15. ATN项目(智能矩阵Atmatrix)是否能做到人工智能界的桥梁,从而改变世界?
  16. Verilog实现之任意分频电路
  17. 谷歌浏览器安装vue-devtools插件
  18. 国内怎么使用chatGpt
  19. 寝室卫生问题的博弈分析及其解决方案
  20. 程序员的专属表情包,看了吓一跳

热门文章

  1. 年底福利大放送 百度云双十二感恩有你
  2. JavaScript获取、设置、移除属性
  3. 国际WTI原油价格日、周、月、年度数据(1986.01-2019.02)
  4. 百度OCR文字识别、证卡识别、票据识别原生插件
  5. 毫无争议的 GitHub 顶级有用的开源项目排行榜
  6. 千寻位置如何满足自动驾驶“刚需”
  7. v-SLAM技术简述
  8. QFileDevice 类【官翻】
  9. LoadRunner11录制无法打开IE的解决办法
  10. 操作系统:进程的基本状态及其转换