本文共 15496 字,大约阅读时间需要 51 分钟。
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; }}
主界面布局.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 Liststudents = 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 Listmajors = 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/