首页 > 系统 > Android > 正文

Android实现学生管理系统

2019-10-24 20:17:46
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了Android实现学生管理系统的相关代码,供大家学习借鉴,感兴趣的小伙伴们可以参考一下
 

本文实例为大家分享了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();     }   } } 

以上就是本文的全部内容,希望对大家的学习有所帮助



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表