本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下
局部效果图:
实现代码:
1、布局
<?xml version=\"1.0\" encoding=\"utf-8\"?> <manifest xmlns:android=\"http://schemas.android.com/apk/res/android\" package=\"com.itheima27.sutdentmanager\" android:versionCode=\"1\" android:versionName=\"1.0\" > <uses-sdk android:minSdkVersion=\"8\" android:targetSdkVersion=\"17\" /> <uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/> <application android:allowBackup=\"true\" android:icon=\"@drawable/ic_launcher\" android:label=\"@string/app_name\" android:theme=\"@style/AppTheme\" > <activity android:name=\"com.itheima27.sutdentmanager.MainActivity\" android:label=\"@string/app_name\" android:theme=\"@android:style/Theme.NoTitleBar\" > <intent-filter> <action android:name=\"android.intent.action.MAIN\" /> <category android:name=\"android.intent.category.LAUNCHER\" /> </intent-filter> </activity> </application> </manifest>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\" android:layout_width=\"match_parent\" android:layout_height=\"match_parent\" android:background=\"@android:color/white\" android:orientation=\"vertical\" > <TextView android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_gravity=\"center_horizontal\" android:layout_marginTop=\"5dip\" android:text=\"学生管理系统\" android:textColor=\"#99CCFF\" android:textSize=\"23sp\" /> <RelativeLayout android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:layout_marginTop=\"5dip\" android:padding=\"5dip\" > <TextView android:id=\"@+id/tv_name\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:paddingLeft=\"15dip\" android:paddingRight=\"15dip\" android:text=\"姓名\" android:textSize=\"18sp\" /> <TextView android:id=\"@+id/tv_sex\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_marginLeft=\"5dip\" android:layout_toRightOf=\"@id/tv_name\" android:paddingLeft=\"15dip\" android:paddingRight=\"15dip\" android:text=\"性别\" android:textSize=\"18sp\" /> <TextView android:id=\"@+id/tv_age\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_marginLeft=\"5dip\" android:layout_toRightOf=\"@id/tv_sex\" android:paddingLeft=\"15dip\" android:paddingRight=\"15dip\" android:text=\"年龄\" android:textSize=\"18sp\" /> <EditText android:id=\"@+id/et_name\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignLeft=\"@id/tv_name\" android:layout_alignRight=\"@id/tv_name\" android:layout_below=\"@id/tv_name\" android:singleLine=\"true\" /> <EditText android:id=\"@+id/et_sex\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignLeft=\"@id/tv_sex\" android:layout_alignRight=\"@id/tv_sex\" android:layout_below=\"@id/tv_sex\" android:singleLine=\"true\" /> <EditText android:id=\"@+id/et_age\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignLeft=\"@id/tv_age\" android:layout_alignRight=\"@id/tv_age\" android:layout_below=\"@id/tv_age\" android:inputType=\"number\" android:singleLine=\"true\" /> <Button android:id=\"@+id/btn_add_student\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_alignBaseline=\"@id/et_age\" android:layout_toRightOf=\"@id/et_age\" android:text=\"添加学生\" android:textSize=\"20sp\" /> </RelativeLayout> <ScrollView android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:layout_weight=\"1\" > <LinearLayout android:id=\"@+id/ll_student_list\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" android:layout_margin=\"1dip\" android:orientation=\"vertical\" android:padding=\"5dip\" > </LinearLayout> </ScrollView> <LinearLayout android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:layout_marginTop=\"5dip\" android:orientation=\"horizontal\" > <Button android:id=\"@+id/btn_save\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_weight=\"1\" android:text=\"保存数据\" android:textSize=\"20sp\" /> <Button android:id=\"@+id/btn_restore\" android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\" android:layout_weight=\"1\" android:text=\"恢复数据\" android:textSize=\"20sp\" /> </LinearLayout> </LinearLayout>
2、关键代码:
package com.itheima27.sutdentmanager.entities; public class Student { private String name; private String sex; private Integer age; public Student(String name, String sex, Integer age) { super(); this.name = name; this.sex = sex; this.age = age; } public Student() { super(); // TODO Auto-generated constructor stub } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return \"Student [name=\" + name + \", sex=\" + sex + \", age=\" + age + \"]\"; } }
package com.itheima27.sutdentmanager; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlSerializer; import com.itheima27.sutdentmanager.entities.Student; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.graphics.Color; import android.text.TextUtils; import android.util.Xml; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private EditText etName; private EditText etSex; private EditText etAge; private LinearLayout llStudentList; private List<Student> studentList; private String filePath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init() { etName = (EditText) findViewById(R.id.et_name); etSex = (EditText) findViewById(R.id.et_sex); etAge = (EditText) findViewById(R.id.et_age); llStudentList = (LinearLayout) findViewById(R.id.ll_student_list); findViewById(R.id.btn_save).setOnClickListener(this); findViewById(R.id.btn_restore).setOnClickListener(this); findViewById(R.id.btn_add_student).setOnClickListener(this); studentList = new ArrayList<Student>(); filePath = Environment.getExternalStorageDirectory().getPath() + \"/student.xml\"; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_save: if(studentList.size() > 0) { if(saveStudent2Local()) { Toast.makeText(this, \"保存成功\", 0).show(); } else { Toast.makeText(this, \"保存失败\", 0).show(); } } else { Toast.makeText(this, \"当前没有数据\", 0).show(); } break; case R.id.btn_restore: if(restoreStudentFromLocal()) { Toast.makeText(this, \"恢复成功\", 0).show(); } else { Toast.makeText(this, \"恢复失败\", 0).show(); } break; case R.id.btn_add_student: addStudent(); break; default: break; } } private boolean restoreStudentFromLocal() { try { XmlPullParser parser = Xml.newPullParser(); parser.setInput(new FileInputStream(filePath), \"utf-8\"); int eventType = parser.getEventType(); studentList.clear(); Student student = null; String nodeName = null; while(eventType != XmlPullParser.END_DOCUMENT) { nodeName = parser.getName(); switch (eventType) { case XmlPullParser.START_TAG: if(\"student\".equals(nodeName)) { student = new Student(); } else if(\"name\".equals(nodeName)) { student.setName(parser.nextText()); } else if(\"sex\".equals(nodeName)) { student.setSex(parser.nextText()); } else if(\"age\".equals(nodeName)) { student.setAge(Integer.valueOf(parser.nextText())); } break; case XmlPullParser.END_TAG: if(\"student\".equals(nodeName)) { studentList.add(student); } break; default: break; } eventType = parser.next(); } refreshStudentList(); return true; } catch (Exception e) { e.printStackTrace(); } return false; } private void refreshStudentList() { llStudentList.removeAllViews(); TextView childView; for (Student student : studentList) { childView = new TextView(this); childView.setTextSize(23); childView.setTextColor(Color.BLACK); childView.setText(\" \" + student.getName() + \" \" + student.getSex() + \" \" + student.getAge()); llStudentList.addView(childView); } } private boolean saveStudent2Local() { try { XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(new FileOutputStream(filePath), \"utf-8\"); serializer.startDocument(\"utf-8\", true); serializer.startTag(null, \"infos\"); for (Student stu : studentList) { serializer.startTag(null, \"student\"); serializer.startTag(null, \"name\"); serializer.text(stu.getName()); serializer.endTag(null, \"name\"); serializer.startTag(null, \"sex\"); serializer.text(stu.getSex()); serializer.endTag(null, \"sex\"); serializer.startTag(null, \"age\"); serializer.text(String.valueOf(stu.getAge())); serializer.endTag(null, \"age\"); serializer.endTag(null, \"student\"); } serializer.endTag(null, \"infos\"); serializer.endDocument(); return true; } catch (Exception e) { e.printStackTrace(); } return false; } private void addStudent() { String name = etName.getText().toString(); String sex = etSex.getText().toString(); String age = etAge.getText().toString(); if(!TextUtils.isEmpty(name) && !TextUtils.isEmpty(sex) && !TextUtils.isEmpty(age)) { studentList.add(new Student(name, sex, Integer.valueOf(age))); TextView childView = new TextView(this); childView.setTextSize(23); childView.setTextColor(Color.BLACK); childView.setText(\" \" + name + \" \" + sex + \" \" + age); llStudentList.addView(childView); } else { Toast.makeText(this, \"请正确输入\", 0).show(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/1640
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我